Необходимо вернуть два значения из одной модели в другую в django
models.py
class Users(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-')
)
BILLABLE_and_NON_BILLABLE_CHOICES=(
('Billable','Billable'),
('Non-Billable','Non-Billable')
)
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)
billable_and_non_billable=models.CharField(max_length=250,choices=BILLABLE_and_NON_BILLABLE_CHOICES,default='Billable')
def__str__(self):
return self.employee_name
модель 2
class Consolidated(models.Model):
emp_name=models.ManyToManyField(Users)
proj_name=models.ManyToManyField(Project)
custom_name=models.ManyToManyField(Client)
Cons_date=models.ManyToManyField(Add_Timelog)
bill_no_bill=models.ManyToManyField
def __str__(self):
return str(self.id)
Мне нужно вернуть два поля (имя_сотрудника и billable_and_non_billable) из модели "Users" и отобразить значение в модели "Consolidated". Я уже взял имя сотрудника, но застрял на получении другого поля из той же модели.
Сообщение об ошибке: "App.Consolidated.bill_no_bill: (fields.E304) Reverse accessor for 'Consolidated.bill_no_bill' clash with reverse accessor for 'Consolidated.emp_name'. СОВЕТ: Добавьте или измените аргумент related_name в определении для 'Consolidated.bill_no_bill' или 'Consolidated.emp_name'. App.Consolidated.emp_name: (fields.E304) Обратный аксессор для 'Consolidated.emp_name' конфликтует с обратным аксессором для 'Consolidated.bill_no_bill'. СОВЕТ: Добавьте или измените аргумент related_name в определении для 'Consolidated.emp_name' или 'Consolidated.bill_no_bill'."
Помогите, пожалуйста, решить проблему.
Вы можете попробовать следующим образом:
class Consolidated(models.Model):
emp_name=models.ManyToManyField(Users,related_name="user")
proj_name=models.ManyToManyField(Project)
custom_name=models.ManyToManyField(Client)
Cons_date=models.ManyToManyField(Add_Timelog)
bill_no_bill=models.ManyToManyField(Users, related_name="bill")
def __str__(self):
return str(self.id)