Python Django-不允许具有相同外键类型的属性,如何解决此问题?
在我的Django模型中,这个模型有3个具有相同外键类型的属性Python Django-不允许具有相同外键类型的属性,如何解决此问题?,python,django,model,foreign-keys,Python,Django,Model,Foreign Keys,在我的Django模型中,这个模型有3个具有相同外键类型的属性 employee = models.ForeignKey(Employee) approved_by = models.ForeignKey(Employee) created_by = models.ForeignKey(Employee) 然而,它在执行“makemigrations”后对此表示不满。以下是错误: SystemCheckError: System check identified som
employee = models.ForeignKey(Employee)
approved_by = models.ForeignKey(Employee)
created_by = models.ForeignKey(Employee)
然而,它在执行“makemigrations”后对此表示不满。以下是错误:
SystemCheckError: System check identified some issues:
ERRORS:
railercomapp.Leave.approved_by: (fields.E304) Reverse accessor for 'Leave.approved_by' clashes with reverse accessor for 'Leave.created_by'.
HINT: Add or change a related_name argument to the definition for 'Leave.approved_by' or 'Leave.created_by'.
railercomapp.Leave.approved_by: (fields.E304) Reverse accessor for 'Leave.approved_by' clashes with reverse accessor for 'Leave.employee'.
HINT: Add or change a related_name argument to the definition for 'Leave.approved_by' or 'Leave.employee'.
railercomapp.Leave.created_by: (fields.E304) Reverse accessor for 'Leave.created_by' clashes with reverse accessor for 'Leave.approved_by'.
HINT: Add or change a related_name argument to the definition for 'Leave.created_by' or 'Leave.approved_by'.
railercomapp.Leave.created_by: (fields.E304) Reverse accessor for 'Leave.created_by' clashes with reverse accessor for 'Leave.employee'.
HINT: Add or change a related_name argument to the definition for 'Leave.created_by' or 'Leave.employee'.
railercomapp.Leave.employee: (fields.E304) Reverse accessor for 'Leave.employee' clashes with reverse accessor for 'Leave.approved_by'.
HINT: Add or change a related_name argument to the definition for 'Leave.employee' or 'Leave.approved_by'.
railercomapp.Leave.employee: (fields.E304) Reverse accessor for 'Leave.employee' clashes with reverse accessor for 'Leave.created_by'.
HINT: Add or change a related_name argument to the definition for 'Leave.employee' or 'Leave.created_by'.
models.py
class Leave(models.Model):
leavedate = models.DateField()
employee = models.ForeignKey(Employee)
company = models.ForeignKey(Company)
reason = models.IntegerField(default=0)
description = models.CharField(max_length=100)
status = models.IntegerField(default=0)
approval_note = models.CharField(max_length=100)
approved_by = models.ForeignKey(Employee)
created_by = models.ForeignKey(Employee)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.employee.username
您是否阅读了错误消息中的“提示”?为字段提供相关的\u name
参数。这样的办法应该行得通
employee = models.ForeignKey(Employee, related_name='leaves')
approved_by = models.ForeignKey(Employee, related_name='approved_leaves')
created_by = models.ForeignKey(Employee, related_name='created_leaves')