我有以下的ModelForm,我得到我想要的結果,但我無法弄清楚如何從結果中刪除密鑰。我如何從這個ModelForm中刪除密鑰
形式:
class TicketActionsForm(ModelForm):
assign = forms.ModelChoiceField(queryset=Users.objects.values('user').filter(account=3), empty_label=" Select Admin ")
查看return語句:
return render_to_response('tickets/view.html',
{'ticket':ticket,'ticketactions':TicketActionsForm()},
context_instance=RequestContext(request)
)
模板:
{{ ticketactions.assign }}
結果:(截圖:http://snapplr.com/z7t7)
<option value="" selected="selected"> Select Admin </option>
<option value="{'user': u'Chris'}">{'user': u'Chris'} </option>
<option value="{'user': u'mmiller'}">{'user': u'mmiller'}</option>
<option value="{'user': u'millerm'}">{'user': u'millerm'}</option>
<option value="{'user': u'Cindy222'}">{'user': u'Cindy222'}</option>
編輯:
我能夠輕鬆更新標籤與以下覆蓋,但我仍然偶然發現如何更改選項值。我可以在POST'd後編輯數據,但在此之前我寧願清理它。
class UserModelChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return obj['user']
分辨率:
我結束了在初始化做一個小的黑客得到我想要的結果。
def __init__(self, *args, **kwargs):
super(TicketActionsForm, self).__init__(*args, **kwargs)
newChoices = []
for item in self.fields['assign'].queryset:
choice=(item['user'],item['user'])
newChoices.append(choice)
self.fields['assign'].choices = newChoices
好的,所以在玩過一些遊戲後我只能得到標籤改變。我一直在尋找一個值覆蓋,但找不到任何東西。任何想法如何我可以做到這一點? – Chris
我已經更新了我的答案。我沒有仔細閱讀你傳遞給queryset參數的代碼。 – Umang
嗯,可以發誓,我想昨晚..現在的工作雖然。感謝您的幫助。 – Chris