Необходимо получить значение Employee_name из модели User в модель Employee
# модель 1
class User(models.Model):
JOINING_ROLES_CHOICES= (
('sde-intern','SDE Intern'),
('sde-trainee','SDE Trainee'),
('sde_1','SDE I'),
('ui/ux','UI/UX Designer'),
('quality-engineer-trainee','Quality Engineer Trainee'),
('quality-engineer','Quality Engineer'),
('product-manager','Product Manager'),
('technical-manager','Technical Manager'),
('technical-architect','Technical Architect'),
('technical-lead','Technical Lead')
)
BLOOD_GROUP_CHOICES = (
('a+','A+'),
('a-','A-'),
('b+','B+'),
('b-','B-'),
('ab+','AB+'),
('ab-','AB-'),
('o+','O+'),
('o-','O-')
)
employee_name = models.CharField(max_length=210)
dob=models.DateField(max_length=8)
email=models.EmailField(max_length=254,default=None)
pancard=models.CharField(max_length=100,default=None)
aadhar=models.CharField(max_length=100,default=None)
personal_email_id=models.EmailField(max_length=254,default=None)
phone = PhoneField(blank=True)
emergency_contact_no=models.IntegerField(default=None)
name=models.CharField(max_length=100,null=True)
relation=models.CharField(max_length=25,default=None)
blood_group=models.CharField(max_length=25,choices=BLOOD_GROUP_CHOICES,null=True)
joining_role=models.CharField(max_length=250,choices=JOINING_ROLES_CHOICES,null=True)
relieving_role=models.CharField(max_length=250,null=True)
joining_Date=models.DateTimeField(max_length=8,null=True)
relieving_Date=models.DateTimeField(max_length=20,null=True)
def __str__(self):
return self.firstname
#модель 2
class Employeename(models.Model):
employee = models.ForeignKey(User, related_name='employee', on_delete=models.CASCADE)
employee = models.ManyToManyField(User)
def __str__(self):
return self.employee
Мне нужно получить значение employee_name из модели User в модель Employeename. Есть ли способ получить только имя_сотрудника для сотрудника.
пока я пробовал вышеприведенный код, он выдает ошибку, как указано ниже:
TypeError at /admin/App/employee/3/change/ str возвращается нестрока (тип ManyRelatedManager)
Вы возвращаете объект ManyRelatedManager с методом __str__ на Employeename. Преобразуйте его в строку:
def __str__(self):
return str(self.employee)
Это происходит после удаления одного из двух полей модели с одинаковым именем.
Кроме того, я вижу, что в вашем методе __str__ для вашей модели User вы возвращаете self.firstname, но у модели нет атрибута firstname. Это тоже должно вызывать ошибку. Установите его в существующее, требуемое, строковое поле модели.