2
我有一个ModelMultipleChoiceField()
字段的表单。该表单用于向用户的朋友发送消息。这意味着,而不是一个普通的查询集(例如Friends.objects.all()
),我想把类似queryset = user.friends.all()
。有没有方法来创建一个特定的表单实例DJANGO?
这可能吗?
我有一个ModelMultipleChoiceField()
字段的表单。该表单用于向用户的朋友发送消息。这意味着,而不是一个普通的查询集(例如Friends.objects.all()
),我想把类似queryset = user.friends.all()
。有没有方法来创建一个特定的表单实例DJANGO?
这可能吗?
事情是这样的:
#forms.py
class YourForm:
def __init__(data, user):
self.base_fields['your_field'].queryset = user.friends.all()
super(YourForm, self).__init__(data)
#views.py
def your_view(request):
if request.method == 'POST':
form = YourForm(request.POST, request.user)
else:
form = YourForm(user=request.user)
[...]
最简单的方法就是关闭。别担心,如果你不知道那是什么,只是定义表单内您的看法是这样
def my_view(...):
user = ...
class MessageForm(ModelForm):
friends = forms.ModelMultipleChoiceField(queryset=user.friends.all())
text = ...
form = MessageForm(...)
还有其他的方法,但是这是迄今为止最容易的。
这取决于你的用户模型是什么样子。你如何存储给定用户的朋友是谁? – 2009-12-03 10:24:55