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/