Назначение сотрудника пользователю

Я новичок в Django и пытаюсь создать веб-приложение. В данном случае я хочу назначить сотрудника пользователю. В форме пользователя происходит вызов сотрудников, которые активны и у которых еще нет назначенных пользователей. Проблема в том, что при выполнении вызова и выводе списка сотрудников на экран, он не выводит мне имя сотрудника, а только имя: Employee Object(8)

Моя модель(Пользователь)

class User(AbstractUser):
  active = models.BooleanField(default=True)
  employee = models.OneToOneField(Employee,on_delete=models.CASCADE,null=True)

  def __str__ (self):
    return '{}'.format(self.username,self.groups,self.active,self.employee)

Моя форма(Пользователь)

class UserForm(UserCreationForm):

  username = forms.CharField(label="User",
  widget=forms.TextInput(attrs{"class":"formcontrol"}))

  groups = forms.ModelMultipleChoiceField(label="Rol",queryset=Group.objects.all(),
  widget=forms.CheckboxSelectMultiple,required=True)

  password1 = forms.PasswordInput(attrs={'class':'form-control'})
  password2 = forms.PasswordInput(attrs={'class':'form-control'})

  employee = forms.ModelChoiceField(queryset=Employee.objects.filter(user=None,active=True),
  widget=forms.Select(attrs={'class':'form-control'}))


class Meta:
    model = User
    fields = [
        "username",
        "password1",
        "password2",
        "groups",
        "employee",
        #"active",
        ]

Проблема в том, что при выполнении вызова и выводе списка сотрудников на экран, он не выводит мне имя сотрудника, а только имя: Employee Object(8).

Поскольку вы должны возвращать имя сотрудника в методе __str__() самой Employee модели.

Пример здесь:

class Employee(models.Model):
... # other fields.
...
    def __str__(self):
        return f"{self.employee_name_field}"

Поделитесь своей моделью Employee, отредактирую ответ.

queryset=Employee.objects.filter(user=None,active=True).values("name_field_from_table","other_field_if_you_want")
Вернуться на верх