Skip to content

Commit 4e1c32f

Browse files
authored
Fix mypy==0.710 errors (#97)
* error -> note for revealed type for tests * fixes for latest mypy
1 parent ea1294b commit 4e1c32f

14 files changed

+244
-248
lines changed

django-stubs/test/testcases.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class SimpleTestCase(unittest.TestCase):
4747
client_class: Any = ...
4848
client: Client
4949
allow_database_queries: bool = ...
50-
def __call__(self, result: unittest.TestResult = ...) -> None: ...
50+
def __call__(self, result: Optional[unittest.TestResult] = ...) -> None: ...
5151
def settings(self, **kwargs: Any) -> Any: ...
5252
def modify_settings(self, **kwargs: Any) -> Any: ...
5353
def assertRedirects(

test-data/typecheck/config.test

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
[env MYPY_DJANGO_CONFIG=${MYPY_CWD}/mypy_django.ini]
33
[disable_cache]
44
from django.conf import settings
5-
reveal_type(settings.NO_SUCH_SETTING) # E: Revealed type is 'Any'
5+
reveal_type(settings.NO_SUCH_SETTING) # N: Revealed type is 'Any'
66

77
[file mypy_django.ini]
88
[[mypy_django_plugin]
@@ -13,7 +13,7 @@ ignore_missing_settings = True
1313
[env MYPY_DJANGO_CONFIG=${MYPY_CWD}/mypy_django.ini]
1414
[disable_cache]
1515
from django.conf import settings
16-
reveal_type(settings.MY_SETTING) # E: Revealed type is 'builtins.int'
16+
reveal_type(settings.MY_SETTING) # N: Revealed type is 'builtins.int'
1717

1818
[file mypy_django.ini]
1919
[[mypy_django_plugin]
@@ -26,7 +26,7 @@ MY_SETTING: int = 1
2626
[CASE mypy_django_ini_in_current_directory_is_a_default]
2727
[disable_cache]
2828
from django.conf import settings
29-
reveal_type(settings.MY_SETTING) # E: Revealed type is 'builtins.int'
29+
reveal_type(settings.MY_SETTING) # N: Revealed type is 'builtins.int'
3030

3131
[file mypy_django.ini]
3232
[[mypy_django_plugin]

test-data/typecheck/fields.test

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class User(models.Model):
66
array = ArrayField(base_field=models.Field())
77

88
user = User()
9-
reveal_type(user.array) # E: Revealed type is 'builtins.list*[Any]'
9+
reveal_type(user.array) # N: Revealed type is 'builtins.list*[Any]'
1010
[/CASE]
1111

1212
[CASE array_field_base_field_parsed_into_generic_typevar]
@@ -18,8 +18,8 @@ class User(models.Model):
1818
members_as_text = ArrayField(base_field=models.CharField(max_length=255))
1919

2020
user = User()
21-
reveal_type(user.members) # E: Revealed type is 'builtins.list*[builtins.int]'
22-
reveal_type(user.members_as_text) # E: Revealed type is 'builtins.list*[builtins.str]'
21+
reveal_type(user.members) # N: Revealed type is 'builtins.list*[builtins.int]'
22+
reveal_type(user.members_as_text) # N: Revealed type is 'builtins.list*[builtins.str]'
2323
[/CASE]
2424

2525
[CASE test_model_fields_classes_present_as_primitives]
@@ -33,11 +33,11 @@ class User(models.Model):
3333
text = models.TextField()
3434

3535
user = User()
36-
reveal_type(user.id) # E: Revealed type is 'builtins.int'
37-
reveal_type(user.small_int) # E: Revealed type is 'builtins.int*'
38-
reveal_type(user.name) # E: Revealed type is 'builtins.str*'
39-
reveal_type(user.slug) # E: Revealed type is 'builtins.str*'
40-
reveal_type(user.text) # E: Revealed type is 'builtins.str*'
36+
reveal_type(user.id) # N: Revealed type is 'builtins.int'
37+
reveal_type(user.small_int) # N: Revealed type is 'builtins.int*'
38+
reveal_type(user.name) # N: Revealed type is 'builtins.str*'
39+
reveal_type(user.slug) # N: Revealed type is 'builtins.str*'
40+
reveal_type(user.text) # N: Revealed type is 'builtins.str*'
4141
[/CASE]
4242

4343
[CASE test_model_field_classes_from_existing_locations]
@@ -51,9 +51,9 @@ class Booking(models.Model):
5151
some_decimal = models.DecimalField(max_digits=10, decimal_places=5)
5252

5353
booking = Booking()
54-
reveal_type(booking.id) # E: Revealed type is 'builtins.int'
55-
reveal_type(booking.time_range) # E: Revealed type is 'Any'
56-
reveal_type(booking.some_decimal) # E: Revealed type is 'decimal.Decimal*'
54+
reveal_type(booking.id) # N: Revealed type is 'builtins.int'
55+
reveal_type(booking.time_range) # N: Revealed type is 'Any'
56+
reveal_type(booking.some_decimal) # N: Revealed type is 'decimal.Decimal*'
5757
[/CASE]
5858

5959
[CASE test_add_id_field_if_no_primary_key_defined]
@@ -62,7 +62,7 @@ from django.db import models
6262
class User(models.Model):
6363
pass
6464

65-
reveal_type(User().id) # E: Revealed type is 'builtins.int'
65+
reveal_type(User().id) # N: Revealed type is 'builtins.int'
6666
[/CASE]
6767

6868
[CASE test_do_not_add_id_if_field_with_primary_key_True_defined]
@@ -71,10 +71,10 @@ from django.db import models
7171
class User(models.Model):
7272
my_pk = models.IntegerField(primary_key=True)
7373

74-
reveal_type(User().my_pk) # E: Revealed type is 'builtins.int*'
74+
reveal_type(User().my_pk) # N: Revealed type is 'builtins.int*'
7575
reveal_type(User().id)
7676
[out]
77-
main:7: error: Revealed type is 'Any'
77+
main:7: note: Revealed type is 'Any'
7878
main:7: error: "User" has no attribute "id"
7979
[/CASE]
8080

@@ -109,7 +109,7 @@ class User(models.Model):
109109
pass
110110
reveal_type(User.objects.first().id)
111111
[out]
112-
main:4: error: Revealed type is 'Any'
112+
main:4: note: Revealed type is 'Any'
113113
main:4: error: Item "None" of "Optional[User]" has no attribute "id"
114114
[/CASE]
115115

@@ -120,7 +120,7 @@ class ParentModel(models.Model):
120120
pass
121121
class MyModel(ParentModel):
122122
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
123-
reveal_type(MyModel().id) # E: Revealed type is 'uuid.UUID'
123+
reveal_type(MyModel().id) # N: Revealed type is 'uuid.UUID'
124124
[/CASE]
125125

126126
[CASE blank_and_null_char_field_allows_none]
@@ -130,7 +130,7 @@ class MyModel(models.Model):
130130
MyModel(nulltext="")
131131
MyModel(nulltext=None)
132132
MyModel().nulltext=None
133-
reveal_type(MyModel().nulltext) # E: Revealed type is 'Union[builtins.str, None]'
133+
reveal_type(MyModel().nulltext) # N: Revealed type is 'Union[builtins.str, None]'
134134
[/CASE]
135135

136136
[CASE blank_and_not_null_charfield_does_not_allow_none]
@@ -140,5 +140,5 @@ class MyModel(models.Model):
140140
MyModel(notnulltext=None) # Should allow None in constructor
141141
MyModel(notnulltext="")
142142
MyModel().notnulltext = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
143-
reveal_type(MyModel().notnulltext) # E: Revealed type is 'builtins.str*'
143+
reveal_type(MyModel().notnulltext) # N: Revealed type is 'builtins.str*'
144144
[/CASE]

test-data/typecheck/forms.test

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ class MyView(FormView):
3333

3434
def post(self, request, *args: Any, **kwds: Any):
3535
form_class = self.get_form_class()
36-
reveal_type(form_class) # E: Revealed type is 'Type[main.MyForm]'
37-
reveal_type(self.get_form(None)) # E: Revealed type is 'main.MyForm'
38-
reveal_type(self.get_form()) # E: Revealed type is 'main.MyForm'
39-
reveal_type(self.get_form(form_class)) # E: Revealed type is 'main.MyForm'
40-
reveal_type(self.get_form(MyForm2)) # E: Revealed type is 'main.MyForm2'
36+
reveal_type(form_class) # N: Revealed type is 'Type[main.MyForm]'
37+
reveal_type(self.get_form(None)) # N: Revealed type is 'main.MyForm'
38+
reveal_type(self.get_form()) # N: Revealed type is 'main.MyForm'
39+
reveal_type(self.get_form(form_class)) # N: Revealed type is 'main.MyForm'
40+
reveal_type(self.get_form(MyForm2)) # N: Revealed type is 'main.MyForm2'
4141
[/CASE]

test-data/typecheck/managers.test

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@
22
from django.db import models
33
class User(models.Model):
44
pass
5-
reveal_type(User.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.User]'
6-
reveal_type(User.objects.get()) # E: Revealed type is 'main.User*'
5+
reveal_type(User.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.User]'
6+
reveal_type(User.objects.get()) # N: Revealed type is 'main.User*'
77

88
[CASE every_model_has_its_own_objects_queryset]
99
from django.db import models
1010
class Parent(models.Model):
1111
pass
1212
class Child(Parent):
1313
pass
14-
reveal_type(Parent.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.Parent]'
15-
reveal_type(Child.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.Child]'
14+
reveal_type(Parent.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.Parent]'
15+
reveal_type(Child.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.Child]'
1616
[out]
1717

1818
[CASE if_manager_is_defined_on_model_do_not_add_objects]
1919
from django.db import models
2020

2121
class MyModel(models.Model):
2222
authors = models.Manager[MyModel]()
23-
reveal_type(MyModel.authors) # E: Revealed type is 'django.db.models.manager.Manager[main.MyModel]'
23+
reveal_type(MyModel.authors) # N: Revealed type is 'django.db.models.manager.Manager[main.MyModel]'
2424
MyModel.objects # E: "Type[MyModel]" has no attribute "objects"
2525
[out]
2626

@@ -32,15 +32,15 @@ _T = TypeVar('_T', bound=models.Model)
3232
class Base(Generic[_T]):
3333
def __init__(self, model_cls: Type[_T]):
3434
self.model_cls = model_cls
35-
reveal_type(self.model_cls._default_manager) # E: Revealed type is 'django.db.models.manager.Manager[django.db.models.base.Model]'
35+
reveal_type(self.model_cls._default_manager) # N: Revealed type is 'django.db.models.manager.Manager[django.db.models.base.Model]'
3636
class MyModel(models.Model):
3737
pass
3838
base_instance = Base(MyModel)
39-
reveal_type(base_instance.model_cls._default_manager) # E: Revealed type is 'django.db.models.manager.Manager[main.MyModel]'
39+
reveal_type(base_instance.model_cls._default_manager) # N: Revealed type is 'django.db.models.manager.Manager[main.MyModel]'
4040

4141
class Child(Base[MyModel]):
4242
def method(self) -> None:
43-
reveal_type(self.model_cls._default_manager) # E: Revealed type is 'django.db.models.manager.Manager[main.MyModel]'
43+
reveal_type(self.model_cls._default_manager) # N: Revealed type is 'django.db.models.manager.Manager[main.MyModel]'
4444

4545
[CASE if_custom_manager_defined_it_is_set_to_default_manager]
4646
from typing import TypeVar
@@ -50,7 +50,7 @@ class CustomManager(models.Manager[_T]):
5050
pass
5151
class MyModel(models.Model):
5252
manager = CustomManager[MyModel]()
53-
reveal_type(MyModel._default_manager) # E: Revealed type is 'main.CustomManager[main.MyModel]'
53+
reveal_type(MyModel._default_manager) # N: Revealed type is 'main.CustomManager[main.MyModel]'
5454

5555
[CASE if_default_manager_name_is_passed_set_default_manager_to_it]
5656
from typing import TypeVar
@@ -66,7 +66,7 @@ class MyModel(models.Model):
6666
default_manager_name = 'm2'
6767
m1: Manager1[MyModel]
6868
m2: Manager2[MyModel]
69-
reveal_type(MyModel._default_manager) # E: Revealed type is 'main.Manager2[main.MyModel]'
69+
reveal_type(MyModel._default_manager) # N: Revealed type is 'main.Manager2[main.MyModel]'
7070

7171
[CASE test_leave_as_is_if_objects_is_set_and_fill_typevars_with_outer_class]
7272
from django.db import models
@@ -78,18 +78,18 @@ class UserManager(models.Manager[MyUser]):
7878
class MyUser(models.Model):
7979
objects = UserManager()
8080

81-
reveal_type(MyUser.objects) # E: Revealed type is 'main.UserManager[main.MyUser]'
82-
reveal_type(MyUser.objects.get()) # E: Revealed type is 'main.MyUser*'
83-
reveal_type(MyUser.objects.get_or_404()) # E: Revealed type is 'main.MyUser'
81+
reveal_type(MyUser.objects) # N: Revealed type is 'main.UserManager[main.MyUser]'
82+
reveal_type(MyUser.objects.get()) # N: Revealed type is 'main.MyUser*'
83+
reveal_type(MyUser.objects.get_or_404()) # N: Revealed type is 'main.MyUser'
8484

8585
[CASE model_imported_from_different_file]
8686
from django.db import models
8787
from models.main import Inventory
8888

8989
class Band(models.Model):
9090
pass
91-
reveal_type(Inventory.objects) # E: Revealed type is 'django.db.models.manager.Manager[models.main.Inventory]'
92-
reveal_type(Band.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.Band]'
91+
reveal_type(Inventory.objects) # N: Revealed type is 'django.db.models.manager.Manager[models.main.Inventory]'
92+
reveal_type(Band.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.Band]'
9393
[file models/__init__.py]
9494
[file models/main.py]
9595
from django.db import models
@@ -110,10 +110,10 @@ class Book(models.Model):
110110
published_objects = PublishedBookManager()
111111
annotated_objects = AnnotatedBookManager()
112112

113-
reveal_type(AbstractPerson.abstract_persons) # E: Revealed type is 'django.db.models.manager.Manager[main.AbstractPerson]'
114-
reveal_type(Book.published_objects) # E: Revealed type is 'main.PublishedBookManager[main.Book]'
113+
reveal_type(AbstractPerson.abstract_persons) # N: Revealed type is 'django.db.models.manager.Manager[main.AbstractPerson]'
114+
reveal_type(Book.published_objects) # N: Revealed type is 'main.PublishedBookManager[main.Book]'
115115
Book.published_objects.create(title='hello')
116-
reveal_type(Book.annotated_objects) # E: Revealed type is 'main.AnnotatedBookManager[main.Book]'
116+
reveal_type(Book.annotated_objects) # N: Revealed type is 'main.AnnotatedBookManager[main.Book]'
117117
Book.annotated_objects.create(title='hello')
118118
[out]
119119

@@ -149,11 +149,11 @@ class UnrelatedModel(models.Model):
149149
class MyModel(models.Model):
150150
pass
151151

152-
reveal_type(UnrelatedModel.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.UnrelatedModel]'
153-
reveal_type(UnrelatedModel.objects.first()) # E: Revealed type is 'Union[main.UnrelatedModel*, None]'
152+
reveal_type(UnrelatedModel.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.UnrelatedModel]'
153+
reveal_type(UnrelatedModel.objects.first()) # N: Revealed type is 'Union[main.UnrelatedModel*, None]'
154154

155-
reveal_type(MyModel.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.MyModel]'
156-
reveal_type(MyModel.objects.first()) # E: Revealed type is 'Union[main.MyModel*, None]'
155+
reveal_type(MyModel.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.MyModel]'
156+
reveal_type(MyModel.objects.first()) # N: Revealed type is 'Union[main.MyModel*, None]'
157157

158158
# Possible to specify objects without explicit annotation of models.Manager()
159159
class UnrelatedModel2(models.Model):
@@ -162,11 +162,11 @@ class UnrelatedModel2(models.Model):
162162
class MyModel2(models.Model):
163163
pass
164164

165-
reveal_type(UnrelatedModel2.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.UnrelatedModel2]'
166-
reveal_type(UnrelatedModel2.objects.first()) # E: Revealed type is 'Union[main.UnrelatedModel2*, None]'
165+
reveal_type(UnrelatedModel2.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.UnrelatedModel2]'
166+
reveal_type(UnrelatedModel2.objects.first()) # N: Revealed type is 'Union[main.UnrelatedModel2*, None]'
167167

168-
reveal_type(MyModel2.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.MyModel2]'
169-
reveal_type(MyModel2.objects.first()) # E: Revealed type is 'Union[main.MyModel2*, None]'
168+
reveal_type(MyModel2.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.MyModel2]'
169+
reveal_type(MyModel2.objects.first()) # N: Revealed type is 'Union[main.MyModel2*, None]'
170170

171171

172172
# Inheritance works
@@ -177,11 +177,11 @@ class MyModel3(ParentOfMyModel3):
177177
pass
178178

179179

180-
reveal_type(ParentOfMyModel3.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.ParentOfMyModel3]'
181-
reveal_type(ParentOfMyModel3.objects.first()) # E: Revealed type is 'Union[main.ParentOfMyModel3*, None]'
180+
reveal_type(ParentOfMyModel3.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.ParentOfMyModel3]'
181+
reveal_type(ParentOfMyModel3.objects.first()) # N: Revealed type is 'Union[main.ParentOfMyModel3*, None]'
182182

183-
reveal_type(MyModel3.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.MyModel3]'
184-
reveal_type(MyModel3.objects.first()) # E: Revealed type is 'Union[main.MyModel3*, None]'
183+
reveal_type(MyModel3.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.MyModel3]'
184+
reveal_type(MyModel3.objects.first()) # N: Revealed type is 'Union[main.MyModel3*, None]'
185185

186186

187187
# Inheritance works with explicit objects in child
@@ -191,11 +191,11 @@ class ParentOfMyModel4(models.Model):
191191
class MyModel4(ParentOfMyModel4):
192192
objects = models.Manager[MyModel4]()
193193

194-
reveal_type(ParentOfMyModel4.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.ParentOfMyModel4]'
195-
reveal_type(ParentOfMyModel4.objects.first()) # E: Revealed type is 'Union[main.ParentOfMyModel4*, None]'
194+
reveal_type(ParentOfMyModel4.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.ParentOfMyModel4]'
195+
reveal_type(ParentOfMyModel4.objects.first()) # N: Revealed type is 'Union[main.ParentOfMyModel4*, None]'
196196

197-
reveal_type(MyModel4.objects) # E: Revealed type is 'django.db.models.manager.Manager[main.MyModel4]'
198-
reveal_type(MyModel4.objects.first()) # E: Revealed type is 'Union[main.MyModel4*, None]'
197+
reveal_type(MyModel4.objects) # N: Revealed type is 'django.db.models.manager.Manager[main.MyModel4]'
198+
reveal_type(MyModel4.objects.first()) # N: Revealed type is 'Union[main.MyModel4*, None]'
199199

200200

201201
[out]

test-data/typecheck/migrations.test

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ if TYPE_CHECKING:
55
from myapp.models import User
66
apps = Apps()
77
model_cls = apps.get_model('myapp', 'User')
8-
reveal_type(model_cls) # E: Revealed type is 'Type[myapp.models.User]'
9-
reveal_type(model_cls.objects) # E: Revealed type is 'django.db.models.manager.Manager[myapp.models.User]'
8+
reveal_type(model_cls) # N: Revealed type is 'Type[myapp.models.User]'
9+
reveal_type(model_cls.objects) # N: Revealed type is 'django.db.models.manager.Manager[myapp.models.User]'
1010

1111
[file myapp/__init__.py]
1212
[file myapp/models.py]
@@ -23,7 +23,7 @@ app_name = 'myapp'
2323
model_name = 'User'
2424
apps = Apps()
2525
model_cls = apps.get_model(app_name, model_name)
26-
reveal_type(model_cls) # E: Revealed type is 'Type[django.db.models.base.Model]'
26+
reveal_type(model_cls) # N: Revealed type is 'Type[django.db.models.base.Model]'
2727

2828
[file myapp/__init__.py]
2929
[file myapp/models.py]
@@ -38,8 +38,8 @@ if TYPE_CHECKING:
3838
from myapp.models import User
3939
apps = StateApps([], {})
4040
model_cls = apps.get_model('myapp', 'User')
41-
reveal_type(model_cls) # E: Revealed type is 'Type[myapp.models.User]'
42-
reveal_type(model_cls.objects) # E: Revealed type is 'django.db.models.manager.Manager[myapp.models.User]'
41+
reveal_type(model_cls) # N: Revealed type is 'Type[myapp.models.User]'
42+
reveal_type(model_cls.objects) # N: Revealed type is 'django.db.models.manager.Manager[myapp.models.User]'
4343

4444
[file myapp/__init__.py]
4545
[file myapp/models.py]

test-data/typecheck/model.test

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ class B(models.Model):
3030
pass
3131

3232
b_instance = B()
33-
reveal_type(b_instance.b_attr) # E: Revealed type is 'builtins.int'
33+
reveal_type(b_instance.b_attr) # N: Revealed type is 'builtins.int'
3434

3535
reveal_type(b_instance.non_existent_attribute)
3636
b_instance.non_existent_attribute = 2
3737
[out]
38-
main:10: error: Revealed type is 'Any'
38+
main:10: note: Revealed type is 'Any'
3939
main:10: error: "B" has no attribute "non_existent_attribute"
4040
main:11: error: "B" has no attribute "non_existent_attribute"
4141
[/CASE]
@@ -48,7 +48,7 @@ class B(models.Model):
4848
pass
4949

5050
b_instance = B()
51-
reveal_type(b_instance.non_existent_attribute) # E: Revealed type is 'Any'
51+
reveal_type(b_instance.non_existent_attribute) # N: Revealed type is 'Any'
5252
b_instance.non_existent_attribute = 2
5353

5454
[env MYPY_DJANGO_CONFIG=${MYPY_CWD}/mypy_django.ini]

test-data/typecheck/model_create.test

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,11 @@ class Parent2(models.Model):
2828
id2 = models.AutoField(primary_key=True)
2929
name2 = models.CharField(max_length=50)
3030

31-
# TODO: Remove the 2 expected errors on the next line once mypy issue https://github.com/python/mypy/issues/2619 is resolved:
3231
class Child1(Parent1, Parent2):
3332
value = models.IntegerField()
3433
class Child4(Child1):
3534
value4 = models.IntegerField()
3635
Child4.objects.create(name1='n1', name2='n2', value=1, value4=4)
37-
[out]
38-
main:10: error: Definition of "objects" in base class "Parent1" is incompatible with definition in base class "Parent2"
39-
main:10: error: Definition of "_default_manager" in base class "Parent1" is incompatible with definition in base class "Parent2"
4036

4137
[CASE optional_primary_key_for_create_is_error]
4238
from django.db import models

0 commit comments

Comments
 (0)