簡體   English   中英

django.core.exceptions.FieldError:不能為論壇 model 表單指定“日期”,因為它是不可編輯的字段

[英]django.core.exceptions.FieldError: 'date' cannot be specified for Forum model form as it is a non-editable field

這是我的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

如何解決這樣的問題,我也試過set editable=True。 它沒有幫助。

問題在於

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¶ 首次創建 object 時自動將該字段設置為現在。 用於創建時間戳。 請注意,始終使用當前日期; 它不僅僅是您可以覆蓋的默認值。 因此即使在創建 object 時為該字段設置了值,它也會被忽略。 如果您希望能夠修改此字段,請設置以下內容而不是 auto_now_add=True:

對於 DateField:default=date.today - 從 datetime.date.today() 對於 DateTimeField: default=timezone.now - 從 django.utils.timezone.now()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM