Django CheckboxSelectMultiple小部件:默认情况下仅渲染选定的数据

时间:2018-01-10 03:21:41

标签: html django

问候,我的user模型中有多个字段调用model_A,在我的表单中,我如何才能显示默认情况下与model_A相关联的所选数据列表列出我的html页面中User模型的整个条目?我的目的是创建一个设置页面,我可以删除与项目相关的用户

下面是我的代码:

model.py:

class model_A(models.Model):
    user = models.ManyToManyField(User, blank=True)

form.py:

class EditForm(forms.ModelForm):
    prefix = 'edit_form'
    class Meta:
        model = model_A
        fields = '__all__'
        widgets = {'user':forms.CheckboxSelectMultiple}

html:

<div class="field">
    {{form.user}}
</div>   

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

EditForm 类的__init__方法中更改用户查询集。

class EditForm(forms.ModelForm):
    prefix = 'edit_form'
    class Meta:
        model = model_A
        fields = '__all__'
        widgets = {'user':forms.CheckboxSelectMultiple}

    def __init__(self, **kwargs):
        self.event = kwargs.pop('event')
        super().__init__(**kwargs)
        # replace dots with your conditions in filter
        self.fields['user'].queryset = self.user.filter(...) 

<强>更新

列出与Model_A

相关联的用户
self.fields['user'].queryset = self.user.all()