将django表单中的外键字段设置为只读,并仍然允许提交表单

时间:2009-07-09 17:53:29

标签: html django forms readonly

如何将表单中的外键字段设置为只读,但仍然允许在提交表单后将此字段识别为有效字段?根据W3C,一旦表单被提交,禁用的字段就会被遗漏....使用下面的代码,我可以将字段设置为禁用,因此只读,但我的表单没有通过

    def __init__(self, *args, **kwargs):
       super(IssuesForm, self).__init__(*args, **kwargs)
       self.fields['vehicle'].widget.attrs['readonly'] = True

思想....?

4 个答案:

答案 0 :(得分:2)

我不知道Django或Python语法,但是,类型=“hidden”的输入字段可能正是您正在寻找的。如果您仍想使用禁用字段显示值,您也可以这样做,并依赖隐藏字段获取实际值。

答案 1 :(得分:0)

也许我可以尝试隐藏的领域......我知道这是一种可能性,但我想确定没有别的办法

答案 2 :(得分:0)

我遇到了这个问题,我使用JavaScript来解决

答案 3 :(得分:0)

在许多其他解决方案似乎都无效之后,我遇到了这个问题。这是示例代码,说明如何使用“隐藏”建议使它成功工作,以防对其他人有帮助。

class EditExifForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(EditExifForm, self).__init__(*args, **kwargs)
        self.fields['image'].widget.attrs['hidden'] = True    # This is the solution
        # Setting as 'readonly' didn't make a difference
        # Setting as 'disabled' made the form not update the database

    class Meta:
        model = exif
        ...