Назначение сотрудника пользователю
Я новичок в 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")