我的表单类中有一个ChoiceField,可能是一个用户列表.如何使用我的用户模型中的用户列表预填充此列表?
我现在拥有的是:
class MatchForm(forms.Form):
choices = []
user1_auto = forms.CharField()
user1 = forms.ChoiceField(choices=choices)
user2_auto = forms.CharField()
user2 = forms.ChoiceField(choices=choices)
def __init__(self):
user_choices = User.objects.all()
for choice in user_choices:
self.choices.append(
(choice.id, choice.get_full_name())
)
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用(否则我不会在这里).思考?
为了澄清,当我尝试在模板中渲染此表单时,它只是输出任何内容,除非我删除ChoiceFields和__init__()方法.
另外,如果我只想在我的字段中列出用户的全名,该怎么办?也就是说,我想控制每个用户对象的显示输出(所以ModelChoiceField不是一个选项).
我有一个Haystack/xapian搜索索引django.contrib.auth.models.User.模板很简单
{{object.get_full_name}}
Run Code Online (Sandbox Code Playgroud)
因为我打算让用户输入名称并能够搜索它.
我的问题是:如果我搜索(比如说)Sri(我的完整名字),我会得到一个与我的名字有关的用户对象的结果.但是,如果我搜索Sri Ragh- 也就是我的全名,以及我姓氏的一部分,我就没有结果.
如何设置Haystack以便我可以获得部分查询的相应结果?(我基本上希望它能够搜索*Sri Ragh*,但我不知道通配符是否会真正发挥作用,或者如何实现它们).
这是我的搜索查询:
results = SearchQuerySet().filter(content='Sri Ragh')
Run Code Online (Sandbox Code Playgroud)