Django ModelForm将数据添加到上下文中

时间:2017-09-27 17:14:26

标签: django

在ModelForm上,我有一些依赖于另一个的字段。例如,

class FactorForm(ModelForm):
    //field definitions

    class Meta:
        model=Factor
        fields=['name', 'type', 'sets']

sets是一个依赖于type的选择,它也是一个选择。更改type后,我应该更新sets的选项。因此,我想在模板中放置一个字段列表(例如,refresh = [' type']),因此当给定的字段发生更改时,JavaScript函数可以替换该表单。

那么,如何将随机数据放在表单上下文中?

我可以通过用通用CBV覆盖get_context_data来做到这一点。但ModelForm没有这样的方法。

最好,我想将常用逻辑放在ModelFormParent函数中,并在Meta下列出我刷新的字段:

class FactorForm(ModelFormParent):
    //field definitions

    class Meta:
        model=Factor
        fields=['name', 'type', 'sets']
        refresh=['type']

1 个答案:

答案 0 :(得分:0)

覆盖init:

class FactorForm(ModelForm):
    //field definitions

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.refresh = ['type']

然后在你的模板中:

// something like:
{{ form.refresh }}