加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 12:18:43 所属栏目:Python 来源:网络整理
导读:用 django ModelForm开始我的初学课程,我想给用户一个在博客中编辑条目的能力.BlogEntry有一个日期,发布时间,标题和内容.我想向用户显示一个显示所有这些字段的编辑表格,但只有标题和内容可编辑. date和postingTime应显示为不可编辑. class BlogEntry(models
用 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读