クエリセット内の一部のオブジェクトのみを表示するドロップダウン リストを表示しようとしていますが、エラーが発生するか、何も表示されないか、すべて表示されます。
models.py
class Book(models.Model):
name = models.CharField(max_length=200, default='')
owner = models.CharField(max_length=200, default='')
def __unicode__(self):
return self.name
class DropDownList(forms.Form):
switch = forms.ModelChoiceField(queryset=Book.objects.none().order_by('name'), widget=forms.Select(attrs={"onChange":'submit()'}), required=False, initial=0)
def __init__(self, u, *args, **kwargs):
super(DropDownList, self).__init__(*args, **kwargs)
self.fields['switch'].queryset = Book.objects.filter(owner = u)
views.py
d = DropDownList('anthony')
syncdb を実行しようとすると、get(Q(owner = u))
次のようになり
ます。 /
ドロップダウンリストに含まれるアイテムをフィルタリングしなかった場合、ドロップダウンリストが正しく表示されました。