Reputation: 111
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
model 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)
I need to return two fields(employee_name and billable_and_non_billable) from the "Users" model and display the value in the "Consolidated" model. I have already taken the employee name but stuck in taking another field from the same model.
Error message:
"App.Consolidated.bill_no_bill: (fields.E304) Reverse accessor for 'Consolidated.bill_no_bill' clashes with reverse accessor for 'Consolidated.emp_name'.
HINT: Add or change a related_name argument to the definition for 'Consolidated.bill_no_bill' or 'Consolidated.emp_name'. App.Consolidated.emp_name: (fields.E304) Reverse accessor for 'Consolidated.emp_name' clashes with reverse accessor for 'Consolidated.bill_no_bill'.
HINT: Add or change a related_name argument to the definition for 'Consolidated.emp_name' or 'Consolidated.bill_no_bill'."
Upvotes: 0
Views: 67
Reputation: 422
You can try like this:
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)
for reference
Upvotes: 0