У меня есть модель, которая использует User
модель как ForeignKey()
. Однако, когда я отображаю форму с помощью Crispy Forms, в поле выбора shared_with
отображаются имена пользователей. Как я могу изменить это на user.firstname
вместо user.username
? Нужно ли менять queryset
этого поля?
models.py
class box_items(models.Model):
owner = models.ForeignKey(User, on_delete=models.PROTECT, related_name='OwnerToUser')
shared_with = models.ForeignKey(User, on_delete=models.PROTECT, related_name='SharedToUser',null=False)
tags = models.ManyToManyField(box_tags, blank=True)
name = models.CharField(max_length=140, blank=False)
description = models.TextField(blank=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
forms.py
class item_form(forms.ModelForm):
tags = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple(),required=False,queryset=box_tags.objects.order_by('name'))
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('current_user', None) #ERROR HANDLING!!!
super(item_form, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-md-2'
self.helper.layout = Layout(
Submit('submit', 'Speichern'),
CustomTags('tags'),
'shared_with',
'name',
'description',
Submit('submit', 'Speichern')
)