Поле сообщения, не возвращаемое __str__
Мой вопрос похож на Отображать поле, отличное от __str__, но немного отличается. Пример в ссылке, похоже, изменяет только опции в выпадающем списке, но не то, что отображается при их выборе. Я пытаюсь сделать выпадающий список, который заполняется именем и фамилией пользователя. Проблема в том, что моя модель People, к которой я делаю запрос, имеет метод __str, который возвращает badgenumber пользователя, а не его имя и фамилию. Код, опубликованный ниже, работает для заполнения выпадающих опций именами пользователей. Когда вы выбираете одного из списка, он даже заполняет поле правильной информацией. Но когда вы отправляете сообщение, оно все еще публикует badgenumber, связанный с именем/последним именем, которое вы выбрали, а не с их именем и фамилией. Как мне заставить его выводить что-то, не возвращаемое методом __str?
forms.py
class InitiatorSelect(forms.ModelChoiceField):
def label_from_instance(self, person):
return person.fullname
initiator_name = InitiatorSelect(
label="Initiator",
queryset=baws.models.People.objects.filter(distributor=True),
required=True,
widget=local_fields.ListTextWidget(attrs={
"force": "true",
"dvalue": "true",
"autocomplete": "off",
"class": "form-control"
}),