У меня есть следующая ModelForm, и я получаю нужные результаты, но не могу понять, как удалить ключ из результатов.
Форма:
class TicketActionsForm(ModelForm):
assign = forms.ModelChoiceField(queryset=Users.objects.values('user').filter(account=3), empty_label=" Select Admin ")
Просмотреть инструкцию возврата:
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'ами, но я бы предпочел очистить их до этого.
class UserModelChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return obj['user']
Разрешение:
В итоге я немного взломал init для получения желаемых результатов.
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