django.core.exceptions.FieldError:不能为论坛模型表单指定'date',因为它是一个不可编辑的字段



这是我的 models.py

# Create your models here.
class Forum(models.Model):
publisher = models.CharField('Публикатор', max_length=50, default='Anonymous')
topic = models.CharField('Название', max_length=50)
text = models.TextField('Текст')
date = models.DateField(auto_now_add=True)
comment = models.CharField('Комментарий', max_length=100, default='Комментарий')
# slug = models.SlugField(max_length=200, unique=True, default='default')
class Meta:
verbose_name = 'Пост'
verbose_name_plural = 'Посты'
def __str__(self):
return self.topic

如何解决这样的问题,我也尝试设置可编辑=真。它没有帮助。

问题出在

date = models.DateField(auto_now_add=True)

在这里,您将其设置为auto_now_add=True,它将自动添加当前日期时间,但以后无法编辑。尝试将其替换为

from django.utils import timezone
date = models.DateTimeField(default=timezone.now)

以下内容来自文档1

DateField.auto_now_add¶ 首次创建对象时自动将字段设置为现在。对于创建时间戳很有用。请注意,始终使用当前日期;它不仅仅是您可以覆盖的默认值。因此,即使您在创建对象时为此字段设置了值,它也将被忽略。如果希望能够修改此字段,请设置以下内容而不是 auto_now_add=True:

对于日期字段:default=date.today - 从 datetime.date.today() 对于 DateTimeField: default=timezone.now - from django.utils.timezone.now()

最新更新