django对一列的两列外键引用



class Personal(models.Model):
Personal_ID = models.SmallIntegerField(primary_key=True)
Name = models.CharField(max_length=20)

class Meta:
managed = True
db_table = 'Personal'
class Tests(models.Model):

Requestor = models.ForeignKey('Personal',models.DO_NOTHING,
db_column='Personal_ID')
Analyst = models.ForeignKey('Personal', on_delete=models.CASCADE,db_column='Personal_ID',related_name='+')

class Meta:
managed = True
db_table = 'Tests'

我有这个问题,我有两列foreign-key和reference-one列,这在mysql中有效,但在Django模型中不起作用。它显示在一个模型中有两个相同的db_column,这是不允许的,如何修复它。我会很感激

这是代码。如何避免两次使用一个dbcolumn?

db_column=用于此字段的数据库列的名称。如果没有给出,Django将使用字段的名称。

从这两个数据库中删除db_column,或者将其设置为不同的值。

文档说明:"用于此字段的数据库列的名称。如果没有给出,Django将使用字段的名称">

您的模型在两个字段上有db_column=Personal_ID。这意味着您希望命名两个字段Personal_ID。列名不应重复;每个列都必须有一个唯一的名称。

解决方案是从其中一个字段中删除db_column=Personal_ID,然后另一个字段可以具有db_columl=Another_Persona_ID

https://docs.djangoproject.com/en/4.0/ref/models/fields/

最新更新