我想在加载表单时预先填充django表单上的文本字段。以下是我的代码。
我想要这个"内容"我的表单在浏览器中加载时要预填充的forms.py中的字段。该字段应该是不可编辑的。但是下面的代码会创建一个空的文本字段。
我知道我可以通过在网址字符串中发送此信息来预先填充此信息,就像我发送' id'一样。但我不想采取这种方法。有没有其他方法将参数发送到表单?
forms.py
update_attribute
views.py
before_save :update_rating_if_already_exists, if: :new_record?
def update_rating_if_already_exists
# method code
end
survey_forms / post_form_upload.html
class ContentModelForm(ModelForm):
content = forms.CharField(max_length=256)
message = forms.CharField(max_length=256)
created_at = forms.DateTimeField('DateTime created')
class Meta:
model = Content
def __init__(self, *args, **kwargs):
super(ContentModelForm, self).__init__()
self.fields['content'].value = kwargs.get('content')
感谢。
答案 0 :(得分:0)
在实例化表单时,您应该使用initial
关键字参数。这接受一个字典,其中键是字段名称,值是初始值。
form = ContentModelForm(initial={'content': content})
此外,因为您希望此字段是只读的。你应该改变这一行
content = forms.CharField(max_length=256)
到
content = forms.CharField(max_length=256, widget=forms.TextInput(attrs={'readonly':'readonly'})
答案 1 :(得分:0)
例如,如果您想预先填充输入内容,则可以给它一个“值”属性。
input<type="text, value="content_you_want_in_there">