django表单:绑定表单的默认值 [英] django forms: default values for bound forms

查看:631
本文介绍了django表单:绑定表单的默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用以下格式:

class Form(forms.Form):
    name = forms.CharField(required=False, initial='Hello world')

如果我在视图中执行以下操作:

If I do something like this in the view:

form = Form(request.GET)
if form.is_valid():
    name = form.cleaned_data['name']

然后,即使request.GET不包含name的初始值也会丢失名称作为键。有什么解决方法吗?我希望初始值可以将表格绑定为默认值。

Then initial value of name is lost even if request.GET does not contain name as key. Is there any workaround? I would like initial values work to bound forms as "default values".

推荐答案

通过略微修改Gonzalo的解决方案,这是正确的方式:

By slightly modifying Gonzalo's solution, this is the right way:

class Form(forms.Form):
    name = forms.CharField(required=False, initial='Hello world')

    def clean_name(self):
        if not self['name'].html_name in self.data:
            return self.fields['name'].initial
        return self.cleaned_data['name']






如果需要此功能,可以查看django-filter应用程序。我是最近才发现的。


If you need this, you may have a look at django-filter app. I have discovered it quite recently.

这篇关于django表单:绑定表单的默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆