python - Django - 表单验证,隐藏和可见字段的干净方法

标签 python django forms hidden-field

我正在尝试验证字段,一个字段由用户填充,另一个字段对用户隐藏,但由模板填充。

这是我的表格:

class AForm(forms.Form):

    xxxx = forms.CharField(max_length=30)
    yyyy = forms.CharField(max_length=30,widget=forms.HiddenInput)

    def clean(self):

        xxxx=self.cleaned_data['xxxx']
        yyyy=self.cleaned_data['yyyy']              ##ERROR
        if function_check(xxxx,yyyy)==False:
            raise forms.ValidationError("Try again!")

        return xxxx

在我的模板中,我有:

<form method="post" action="">
    {% csrf_token %}
    {{form.xxxx}}
    <input id="id_yyyy" name="yyyy" type="hidden" value='{{ code_generated_value }}' maxlength="30">
    <input type="submit"/>
</form>

我得到的唯一错误是:yyyy=self.cleaned_data['yyyy']行中的'yyyy'。

我发现了这个问题:Hidden field in Django form not in cleaned_data

但这并没有多大帮助。

编辑 1:生成的 HTML 代码

   <p><input id="id_xxxx" maxlength="30" name="xxxx" type="text" /></p>
   <input id="id_yyyy" maxlength="30" name="yyyy" type="hidden" value='97a8eee9477b73dda401b15369f8db00a0d6ab79.png'>
   <input type="submit"/>

最佳答案

始终检查生成的 HTML 和 POST 数据以获取请求。您将看到缺少任何字段等内容。另外,使用 .get(field_name) 方法。

Check here for more.如何从 super 等正确访问 cleaned_data

关于python - Django - 表单验证,隐藏和可见字段的干净方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23872136/

相关文章:

python - 嵌套列表的 Groupby

python - 如何根据特定条件替换列中的某些值?

python - 列表修改如何在 python 中工作

python - django rest框架过滤器

jquery - 将下拉字段选择复制到隐藏文本字段中

javascript - 带有 ng-switch 的 Angular 形式

python - 用 biopython 重命名交错的 fastq 头文件

python - 如何重定向消息以在 Django 模板中显示它们?

python - 在 Windows 上使用 cygwin for django serevr 安装 mysqlclient 因 gcc 错误而失败

POST提交中的PHP重音字符