django:如何显示一对多关系的复选框列表?

zer*_*lus 2 django django-forms

假设该Blog模型与模型具有一对多的关系Entry.在表单中,是否有一种优雅的方式将Blog实例的条目集显示为复选框列表,以便用户可以选择和处理部分/全部条目?

Dan*_*man 6

当然.

class BlogForm(forms.ModelForm):
    entries = forms.ModelMultipleChoiceField(
        queryset=Entry.objects.all(),
        widget=forms.CheckboxSelectMultiple)

    class Meta:
        model = Blog

    def __init__(self, *args, **kwargs):
        super(BlogForm, self).__init__(*args, **kwargs)
        if self.instance:
            entries = Entry.objects.filter(blog=blog)
            self.fields['entries'].queryset = entries
Run Code Online (Sandbox Code Playgroud)