我最初学习 django ModelForm
时,我想让用户能够编辑博客中的条目。BlogEntry
有一个 日期,发布时间、标题和内容
。我想向用户显示一个显示所有这些字段的编辑表单,但只有标题和内容可编辑
。 date 和 postedTime 应该显示为不可编辑
。
class BlogEntry(models.Model):
title = models.CharField(unique=True,max_length=50)
description = models.TextField(blank=True)
date = models.DateField(default=datetime.date.today)
postedTime = models.TimeField(null=True)
...
为了添加条目,我以正常方式使用 ModelForm..
class BlogEntryAddForm(ModelForm):
class Meta:
model = BlogEntry
...
但我如何创建编辑表单?我希望它将日期、postedTime 显示为不可编辑
(但仍将它们显示在表单上)并让用户编辑标题和说明
。
如果我对日期和发布时间使用exclude in class Meta
,这将导致它们不会出现在表单上。那么,我怎样才能将它们显示为不可编辑?
class BlogEntryEditForm(ModelForm):
class Meta:
model = BlogEntry
...?...
在表单对象中,声明字段的属性为readonly
:
form.fields['field'].widget.attrs['readonly'] = True
我是一名优秀的程序员,十分优秀!