@@ -114,7 +114,28 @@ reveal_type(MyModel().id) # E: Revealed type is 'uuid.UUID*'
114
114
from django.db import models
115
115
class MyModel(models.Model):
116
116
text = models.CharField(max_length=30, blank=True)
117
- MyModel(text=None) # E: Incompatible type for "text" of "MyModel" (got " None", expected "Union[str, int, Combinable]")
117
+ MyModel(text=None) # Should allow None in constructor
118
118
MyModel(text="")
119
+ MyModel().text = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
119
120
reveal_type(MyModel().text) # E: Revealed type is 'builtins.str*'
120
121
[/CASE]
122
+
123
+ [CASE blank_and_null_char_field_allows_none]
124
+ from django.db import models
125
+ class MyModel(models.Model):
126
+ nulltext=models.CharField(max_length=1, blank=True, null=True)
127
+ MyModel(nulltext="")
128
+ MyModel(nulltext=None)
129
+ MyModel().nulltext=None
130
+ reveal_type(MyModel().nulltext) # E: Revealed type is 'Union[builtins.str, None]'
131
+ [/CASE]
132
+
133
+ [CASE blank_and_not_null_charfield_does_not_allow_none]
134
+ from django.db import models
135
+ class MyModel(models.Model):
136
+ notnulltext=models.CharField(max_length=1, blank=True, null=False)
137
+ MyModel(notnulltext=None) # Should allow None in constructor
138
+ MyModel(notnulltext="")
139
+ MyModel().notnulltext = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
140
+ reveal_type(MyModel().notnulltext) # E: Revealed type is 'builtins.str*'
141
+ [/CASE]
0 commit comments