mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-06 12:14:28 +08:00
116 lines
4.1 KiB
Plaintext
116 lines
4.1 KiB
Plaintext
[CASE test_foreign_key_field_with_related_name]
|
|
from django.db import models
|
|
|
|
class Publisher(models.Model):
|
|
pass
|
|
|
|
class Book(models.Model):
|
|
publisher = models.ForeignKey(to=Publisher, on_delete=models.CASCADE,
|
|
related_name='books')
|
|
|
|
book = Book()
|
|
reveal_type(book.publisher) # E: Revealed type is 'main.Publisher*'
|
|
|
|
publisher = Publisher()
|
|
reveal_type(publisher.books) # E: Revealed type is 'django.db.models.query.QuerySet[main.Book]'
|
|
|
|
[CASE test_foreign_key_field_creates_attribute_with_underscore_id]
|
|
from django.db import models
|
|
|
|
class Publisher(models.Model):
|
|
pass
|
|
|
|
class Book(models.Model):
|
|
publisher = models.ForeignKey(to=Publisher, on_delete=models.CASCADE)
|
|
class StylesheetError(Exception):
|
|
pass
|
|
owner = models.ForeignKey(db_column='model_id', to='db.Unknown', on_delete=models.CASCADE)
|
|
|
|
book = Book()
|
|
reveal_type(book.publisher_id) # E: Revealed type is 'builtins.int'
|
|
reveal_type(book.owner_id) # E: Revealed type is 'builtins.int'
|
|
|
|
[CASE test_foreign_key_field_different_order_of_params]
|
|
from django.db import models
|
|
|
|
class Publisher(models.Model):
|
|
pass
|
|
|
|
class Book(models.Model):
|
|
publisher = models.ForeignKey(on_delete=models.CASCADE, to=Publisher,
|
|
related_name='books')
|
|
publisher2 = models.ForeignKey(to=Publisher, related_name='books2', on_delete=models.CASCADE)
|
|
|
|
book = Book()
|
|
reveal_type(book.publisher) # E: Revealed type is 'main.Publisher*'
|
|
reveal_type(book.publisher2) # E: Revealed type is 'main.Publisher*'
|
|
|
|
publisher = Publisher()
|
|
reveal_type(publisher.books) # E: Revealed type is 'django.db.models.query.QuerySet[main.Book]'
|
|
reveal_type(publisher.books2) # E: Revealed type is 'django.db.models.query.QuerySet[main.Book]'
|
|
|
|
[CASE test_to_parameter_as_string_with_application_name__model_imported]
|
|
from django.db import models
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from myapp.models import Publisher
|
|
|
|
class Book(models.Model):
|
|
publisher = models.ForeignKey(to='myapp.Publisher', on_delete=models.CASCADE)
|
|
|
|
book = Book()
|
|
reveal_type(book.publisher) # E: Revealed type is 'myapp.models.Publisher*'
|
|
|
|
[file myapp/__init__.py]
|
|
[file myapp/models.py]
|
|
from django.db import models
|
|
class Publisher(models.Model):
|
|
pass
|
|
|
|
[CASE test_to_parameter_as_string_with_application_name__fallbacks_to_any_if_model_not_present_in_dependency_graph]
|
|
from django.db import models
|
|
|
|
class Book(models.Model):
|
|
publisher = models.ForeignKey(to='myapp.Publisher', on_delete=models.CASCADE)
|
|
|
|
book = Book()
|
|
reveal_type(book.publisher) # E: Revealed type is 'Any'
|
|
|
|
[file myapp/__init__.py]
|
|
[file myapp/models.py]
|
|
from django.db import models
|
|
class Publisher(models.Model):
|
|
pass
|
|
|
|
[CASE test_circular_dependency_in_imports_with_foreign_key]
|
|
from django.db import models
|
|
|
|
class App(models.Model):
|
|
def method(self) -> None:
|
|
reveal_type(self.views) # E: Revealed type is 'django.db.models.query.QuerySet[main.View]'
|
|
reveal_type(self.members) # E: Revealed type is 'django.db.models.query.QuerySet[main.Member]'
|
|
reveal_type(self.sheets) # E: Revealed type is 'django.db.models.query.QuerySet[main.Sheet]'
|
|
reveal_type(self.profile) # E: Revealed type is 'main.Profile'
|
|
class View(models.Model):
|
|
app = models.ForeignKey(to=App, related_name='views', on_delete=models.CASCADE)
|
|
class Member(models.Model):
|
|
app = models.ForeignKey(related_name='members', on_delete=models.CASCADE, to=App)
|
|
class Sheet(models.Model):
|
|
app = models.ForeignKey(App, related_name='sheets', on_delete=models.CASCADE)
|
|
class Profile(models.Model):
|
|
app = models.OneToOneField(App, related_name='profile', on_delete=models.CASCADE)
|
|
|
|
[CASE test_circular_dependency_in_imports_with_string_based]
|
|
from django.db import models
|
|
from myapp.models import App
|
|
class View(models.Model):
|
|
app = models.ForeignKey(to='myapp.App', related_name='views', on_delete=models.CASCADE)
|
|
|
|
[file myapp/__init__.py]
|
|
[file myapp/models.py]
|
|
from django.db import models
|
|
class App(models.Model):
|
|
def method(self) -> None:
|
|
reveal_type(self.views) # E: Revealed type is 'django.db.models.query.QuerySet[main.View]'
|