简体   繁体   中英

Need to return two values from the same model to another in 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

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'."

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM