Django Атрибут DateTimeField auto_now_add не работает - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть model оповещение (ниже), которое обновляется в такой функции

Alerte.objects.create(
                asp_ale_loc = site,
                asp_ale_typ = 1, # activation de l'alerte
                # asp_ale_dat = timezone.now() -> replaced by auto_now_add
            ) 

Я изменил формат asp_ale_dat с DateField на DateTimeField и добавил auto_now_add как атрибут

Я запустил makemigrations и migrate

, но когда я создаю объект Alerte, asp_ale_dat пуст

, и если я использую timezone.now(), единственная дата зарегистрирована, а не время ...

class Alerte(models.Model):

    asp_ale_cle = models.AutoField(primary_key=True)
    asp_ale_loc = models.CharField("Site concerned by alert", max_length=10, null=True, blank=True)
    asp_ale_typ = models.IntegerField("Operation type on alert", null=True, blank=True,)
    asp_ale_dat = models.DateTimeField("Operation date on alert", null=True, blank=True,auto_now_add=True)

1 Ответ

1 голос
/ 18 февраля 2020

Я не вижу причин, по которым это не сработает, и действительно я не могу воспроизвести это:

$ pip install django
Successfully installed asgiref-3.2.3 django-3.0.3 pytz-2019.3 sqlparse-0.3.0
$ django-admin startproject so60281850 .
$ subl so60281850/settings.py  # add so60281850 to INSTALLED_APPS
$ subl so60281850/models.py  # add in the model definition
$ python manage.py makemigrations so60281850
Migrations for 'so60281850':
  so60281850/migrations/0001_initial.py
    - Create model Alerte
$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions, so60281850
$ python manage.py shell
>>> from so60281850.models import Alerte
>>> a = Alerte.objects.create(asp_ale_loc='foo', asp_ale_typ=1)
>>> a.asp_ale_dat
datetime.datetime(2020, 2, 18, 13, 28, 49, 420520, tzinfo=<UTC>)
>>>
$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...