【问题标题】:Need to return two values from the same model to another in django需要将两个值从同一模型返回到 django 中的另一个
【发布时间】:2022-02-04 00:36:41
【问题描述】:

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

类合并(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)

我需要从“Users”模型返回两个字段(employee_name 和 billable_and_non_billable),并在“Consolidated”模型中显示值。我已经获取了员工姓名,但仍坚持从同一模型中获取另一个字段。

错误信息:

“App.Consolidated.bill_no_bill:(fields.E304) 'Consolidated.bill_no_bill' 的反向访问器与 'Consolidated.emp_name' 的反向访问器冲突。

提示:在“Consolidated.bill_no_bill”或“Consolidated.emp_name”的定义中添加或更改related_name 参数。 App.Consolidated.emp_name:(fields.E304)“Consolidated.emp_name”的反向访问器与“Consolidated.bill_no_bill”的反向访问器冲突。

提示:在 'Consolidated.emp_name' 或 'Consolidated.bill_no_bill' 的定义中添加或更改相关名称参数。”

【问题讨论】:

    标签: python django django-models django-rest-framework return-value


    【解决方案1】:

    你可以这样试试:

    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)
    

    reference

    【讨论】:

    • 这会为 emp_name 和 bill_no_bill 字段返回相同的值。但是我需要将第一个模型中 billable_and_non_billable 的值转换为第二个模型中的 bill_no_bill 字段
    • @vinothkumar 我想你想创建用户模型的两个主键可能在 django 中不可能看到我更新的帖子
    • 您能详细说明一下吗?
    猜你喜欢
    • 2016-08-12
    • 2012-03-12
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2017-11-21
    相关资源
    最近更新 更多