如何限制MultipleChoiceField显示项目?

时间:2011-08-18 19:04:06

标签: django

我有一个MultipleChoiceField。我需要分配一个整数值,它提供了MultipleChoiceField在网站上只显示这个元素的数量?我怎样才能做到这一点?

另一个问题是,在哪里可以找到包含这些问题答案的文档?我需要像QT Asistant这样的文件。

1 个答案:

答案 0 :(得分:0)

您可以修改init上任何选项字段的选项。

考虑一下

class BookForm(forms.Form):
    book = forms.ModelChoiceField(queryset=Book.objects.all())
    user = forms.EmailField()

    def __init__(self, author=None, *args, **kwargs):
        super(CheckoutForm, self).__init__(*args, **kwargs)
        if author:
            self.fields['book'].queryset = Book.objects.filter(author__icontains=author)

在这个例子中,你可以像平常一样调用BookForm(),或者你可以调用BookForm(author =“Tolkien”)

这就是你如何动态修改Mo​​delChoices,你可以看到,同样的过程也可以动态修改正常的选择,只需传递一个可迭代的(通常是2元组)