我正在尝试显示一个下拉列表,该下拉列表仅显示查询集中的一些对象,但要么我收到错误,要么我没有显示,或者我正在显示全部。
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')
当我尝试同步数据库时,我得到:“NameError:名称'u'未定义
我尝试使用其他方法进行过滤get(Q(owner = u))
,但无济于事。我正在关注此片段http://djangosnippets.org/snippets/2481中的信息/
当我没有过滤它包含的项目时,下拉列表正确显示。