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