猿问

Django:在DateTimeField中添加auto_now时出错

我正在尝试做 django api。


在models.py中


class Receipt(models.Model):

    id=models.AutoField(primary_key=True)

    name=models.CharField(max_length=100)

    created_at = models.DateTimeField(default=datetime.datetime.now(),null=True,blank=True)

    updated_at = models.DateTimeField(auto_now=True,editable=False)

如果我添加 , auto_now =True,我会出错editable=False。这是我的错误信息。


django.core.exceptions.FieldError: 'updated_at' cannot be specified for Receipt model form as it is a non-editable field

追溯:


Traceback (most recent call last):

  File "/home/uadmin/django/env/lib/python2.7/site-packages/django/utils/autoreload.py", line 228, in wrapper

    fn(*args, **kwargs)

  File "/home/uadmin/django/env/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 124, in inner_run

    self.check(display_num_errors=True)

  File "/home/uadmin/django/env/lib/python2.7/site-packages/django/core/management/base.py", line 359, in check

    include_deployment_checks=include_deployment_checks,

  File "/home/uadmin/django/env/lib/python2.7/site-packages/django/core/management/base.py", line 346, in _run_checks

    return checks.run_checks(**kwargs)

  File "/home/uadmin/django/env/lib/python2.7/site-packages/django/core/checks/registry.py", line 81, in run_checks

    new_errors = check(app_configs=app_configs)


我应该怎么做才能解决这个错误?


翻翻过去那场雪
浏览 996回答 2
2回答

皈依舞

您可以在回溯中看到的错误在您的表单中ReceiptForm。DateTimeFieldwith auto_noware editable=Falseand blank=Trueautomatic,因此不能包含在表单中,除非它是只读的。您可以删除auto_now并使用自定义保存方法来设置updated_at.

达令说

你想要达到什么目标?auto_now是为每次保存设置字段值。你不能覆盖这个。auto_now_add是在创建对象后进行此操作。default 是在您不提供任何内容时使用默认值。我的猜测是你只需要default. 如果不是,请描述您要解决的问题
随时随地看视频慕课网APP

相关分类

Python
我要回答