Пользовательская форма в Django показывает идентификаторы вместо строки

Ребята! У меня проблемы с формами django. Те, что по умолчанию, представляют модели, как и ожидалось (возвращая значения __ str __). Однако, моя пользовательская форма (Event_form_for_Admin) показывает id вместо string в панели администратора и на сайте. Что я упускаю?

models.py

class Position(models.Model):
    name = models.CharField(max_length=800)    
    level = models.CharField(max_length=50)
 
    def __str__(self) -> str:
        return f'{self.level} {self.name}'


class Person(models.Model):
    name = models.CharField(max_length=300)

    def __str__(self) -> str:
        return self.name


class Event(models.Model): 
    person = models.ForeignKey(Person, on_delete=models.RESTRICT)    
    position = models.ForeignKey(Position, on_delete=models.RESTRICT)
  
    def __str__(self) -> str:
        return f'{self.action} {self.position}'

forms.py

class Event_form_for_Admin(forms.ModelForm):
    person = forms.CharField(widget=forms.TextInput, label='Name')
    position = forms.CharField(widget=forms.TextInput, label='Position')
    
    class Meta:
        model = Event
        fields = ['person','position']

вывод на сайте, а также в панели администратора:

enter image description here

Удалите свои пользовательские поля из пользовательской формы. Позвольте Django сделать эту работу :)

class Event_form_for_Admin(forms.ModelForm):
    
    class Meta:
        model = Event
        fields = ['person','position']
Вернуться на верх