发送参数给django表单

时间:2015-08-20 02:53:17

标签: django django-forms django-templates django-views

我想在加载表单时预先填充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')

感谢。

2 个答案:

答案 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">