Skip to content

Commit 0d1d943

Browse files
authored
Fix type representation of DateTimeField.__set__ types (#67)
1 parent 3959bba commit 0d1d943

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

src/django_autotyping/stubbing/codemods/_model_creation.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class FieldType(TypedDict):
6969
# For datetime related fields, we use `datetime.x` because `datetime`
7070
# is already imported in `db/models/manager.pyi`:
7171
DateTimeField: {
72-
"type": "str | datetime.datetime | datetime.Date | Combinable",
72+
"type": "str | datetime.datetime | datetime.date | Combinable",
7373
"extra_imports": [ImportItem("datetime")],
7474
},
7575
DateField: {

tests/stubbing/testfiles/djas002_003.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Test with `MODEL_FIELDS_OPTIONAL=True` (the default).
22

3-
43
from datetime import date, datetime, time
54
from decimal import Decimal
65
from uuid import UUID
@@ -11,6 +10,7 @@
1110
AltNameModel,
1211
CharFieldsModel,
1312
DateFieldsModel,
13+
DateTimeFieldsModel,
1414
ForeignKeyModel,
1515
ModelOne,
1616
)
@@ -31,6 +31,12 @@
3131
DateFieldsModel(date_field=date.today())
3232
DateFieldsModel.objects.create(date_field=date.today())
3333

34+
DateTimeFieldsModel(datetime_field="")
35+
DateTimeFieldsModel.objects.create(datetime_field="")
36+
DateTimeFieldsModel(datetime_field=datetime.now())
37+
DateTimeFieldsModel.objects.create(datetime_field=datetime.now())
38+
DateTimeFieldsModel(datetime_field=date.today())
39+
DateTimeFieldsModel.objects.create(datetime_field=date.today())
3440

3541
AllFieldsModel(integer_field=1)
3642
AllFieldsModel.objects.create(integer_field=1)

tests/stubstestproj/firstapp/models.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,22 @@ class DuplicateModel(models.Model):
3232

3333

3434
class CharFieldsModel(models.Model):
35-
3635
char_field = models.CharField()
3736
char_field_blank = models.CharField(blank=True)
3837
char_field_null = models.CharField(null=True)
3938
char_field_default = models.CharField(default="")
4039

4140
class DateFieldsModel(models.Model):
42-
4341
date_field = models.DateField()
4442
date_field_auto_now = models.DateField(auto_now=True)
4543
date_field_auto_now_add = models.DateField(auto_now_add=True)
4644

47-
class AllFieldsModel(models.Model):
45+
class DateTimeFieldsModel(models.Model):
46+
datetime_field = models.DateTimeField()
47+
datetime_field_auto_now = models.DateTimeField(auto_now=True)
48+
datetime_field_auto_now_add = models.DateTimeField(auto_now_add=True)
4849

50+
class AllFieldsModel(models.Model):
4951
integer_field = models.IntegerField()
5052
float_field = models.FloatField()
5153
decimal_field = models.DecimalField()
@@ -57,7 +59,6 @@ class AllFieldsModel(models.Model):
5759
uuid_field = models.UUIDField()
5860

5961
class ForeignKeyModel(models.Model):
60-
6162
model_one = models.ForeignKey("firstapp.ModelOne", on_delete=models.CASCADE)
6263
model_one_null = models.ForeignKey("firstapp.ModelOne", on_delete=models.CASCADE, null=True)
6364

0 commit comments

Comments
 (0)