我使用django 1.9并拥有一些模型的继承,例如:
class TimeStampedModel(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
之后我使用此模型将created
和modified
添加到我的模型中。但是我不能将这些字段用于表单中。 E.g:
class Customer(TimeStampedModel):
first_name = models.CharField(max_length=250, blank=True,
null=True, default=None)
last_name = models.CharField(max_length=250, blank=True,
null=True, default=None)
表格代码:
class CustomerForm(forms.ModelForm):
class Meta:
model = Customer
fields = ('first_name', 'last_name', 'modified')
readonly_fields = ('modified', )
我收到错误:
django.core.exceptions.FieldError: Unknown field(s) (modified) specified for ...
如何将此字段添加到表单中?我在DB模式中有它,但django形式没有得到它。
答案 0 :(得分:1)
auto_now=True
时, Model.save()
字段会自动更新。
了解更多详情https://docs.djangoproject.com/en/1.11/ref/models/fields/#datefield
auto_now =无法从ModelForm访问真实字段,
如当前实现的那样,将auto_now或auto_now_add设置为True将导致该字段具有editable = False和blank = True设置。
答案 1 :(得分:1)
因为你使用1.9而发生的问题,这是从1.10
改变的所以你可以更新你的django版本,以便你可以使用这个