小编Luc*_*Feo的帖子

Django - 为 ModelForm 中的字段分配默认值

在我的应用程序中我有一个CreateView必须使用默认值初始化模型的某些字段,该默认值与模型内部定义的默认值不同。

我不希望用户编辑该值,因此我将该字段放入列表exclude

class AForm(ModelForm):
    class Meta:
        model = AModel
        exclude = ['a_field']

class AView(CreateView):
    form_class = AForm
Run Code Online (Sandbox Code Playgroud)

问题是:我在哪里设置的值a_field

我尝试clean在里面定义方法AForm,就像这样

class AForm(ModelForm):
    [...]
    def clean(self):
        d = super(AForm, self).clean()
        d['a_field'] = 10
        return d
Run Code Online (Sandbox Code Playgroud)

然而a_field设置为模型中定义的默认值,而不是10。我也尝试过定义clean_a_field,但根本没有执行。

a_field如果我从列表中删除exclude,则 和cleanclean_a_field起作用,但除非我在模板内渲染一些内容,否则表单将不会验证<input name="a_field">,这不是最佳的。

python django

5
推荐指数
1
解决办法
4982
查看次数

标签 统计

django ×1

python ×1