python – 如何将django ModelForm字段显示为不可编辑

django ModelForm开始我的初学课程,我想给用户一个在博客中编辑条目的能力.BlogEntry有一个日期,发布时间,标题和内容.我想向用户显示一个显示所有这些字段的编辑表格,但只有标题和内容可编辑. date和postingTime应显示为不可编辑.

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
...

但是如何创建编辑表单?我希望它显示日期,将publishTime显示为不可编辑(但仍然在表单上显示)并让用户编辑标题和说明.

如果我使用,在类Meta中排除date和postingTime,这将导致它们不出现在窗体上.那么,我怎样才能将它们显示为不可编辑?

class BlogEntryEditForm(ModelForm):
    class Meta:
        model = BlogEntry
        ...?...

解决方法:

在表单对象中,将该字段的属性声明为readonly:

form.fields['field'].widget.attrs['readonly'] = True
上一篇:LeetCode开心刷题三十一天——72. Edit Distance


下一篇:Python - Django - 编辑作者