下面是我的模型.pyDjango项目中的文件。 每当我尝试运行这个项目时,都会出现以下错误。请帮忙,因为我刚开始接django 我尝试按照错误的建议更改外来列的名称,但没有成功。很多答案都建议对我的案例中不存在的相关_名称进行更改。在
控制台出错
app_fin.TblLockerCoutCin.jewel_item: (fields.E304) Reverse accessor for 'TblLockerCoutCin.jewel_item' clashes with reverse accessor for 'TblLockerCoutCin.jewel_item_code'. HINT: Add or change a related_name argument to the definition for 'TblLockerCoutCin.jewel_item' or 'TblLockerCoutCin.jewel_item_code'. app_fin.TblLockerCoutCin.jewel_item: (fields.E304) Reverse accessor for 'TblLockerCoutCin.jewel_item' clashes with reverse accessor for 'TblLockerCoutCin.jewel_item_name'. HINT: Add or change a related_name argument to the definition for 'TblLockerCoutCin.jewel_item' or 'TblLockerCoutCin.jewel_item_name'. app_fin.TblLockerCoutCin.jewel_item_code: (fields.E304) Reverse accessor for 'TblLockerCoutCin.jewel_item_code' clashes with reverse accessor for 'TblLockerCoutCin.jewel_item'. HINT: Add or change a related_name argument to the definition for 'TblLockerCoutCin.jewel_item_code' or 'TblLockerCoutCin.jewel_item'. app_fin.TblLockerCoutCin.jewel_item_code: (fields.E304) Reverse accessor for 'TblLockerCoutCin.jewel_item_code' clashes with reverse accessor for 'TblLockerCoutCin.jewel_item_name'. HINT: Add or change a related_name argument to the definition for 'TblLockerCoutCin.jewel_item_code' or 'TblLockerCoutCin.jewel_item_name'. app_fin.TblLockerCoutCin.jewel_item_name: (fields.E304) Reverse accessor for 'TblLockerCoutCin.jewel_item_name' clashes with reverse accessor for 'TblLockerCoutCin.jewel_item'. HINT: Add or change a related_name argument to the definition for 'TblLockerCoutCin.jewel_item_name' or 'TblLockerCoutCin.jewel_item'. app_fin.TblLockerCoutCin.jewel_item_name: (fields.E304) Reverse accessor for 'TblLockerCoutCin.jewel_item_name' clashes with reverse accessor for 'TblLockerCoutCin.jewel_item_code'. HINT: Add or change a related_name argument to the definition for 'TblLockerCoutCin.jewel_item_name' or 'TblLockerCoutCin.jewel_item_code'.
在模型.py在
from django.db import models
class TblJewelleryInventory(models.Model):
id = models.IntegerField(primary_key=True)
item_code = models.CharField(unique=True, max_length=5, blank=True, null=True)
item_name = models.CharField(max_length=250, blank=True, null=True)
base_locker_location = models.CharField(max_length=45, blank=True, null=True)
updated_at = models.DateTimeField()
created_at = models.DateTimeField()
def __str__(self):
return self.name
class Meta:
managed = False
db_table = 'tbl_jewellery_inventory'
class TblJewelleryInventoryLogs(models.Model):
id = models.IntegerField(primary_key=True)
item_id = models.IntegerField()
item_code = models.CharField(unique=True, max_length=5, blank=True, null=True)
item_name = models.CharField(max_length=250, blank=True, null=True)
base_locker_location = models.CharField(max_length=45, blank=True, null=True)
updated_at = models.DateTimeField()
created_at = models.DateTimeField()
triggered_at = models.DateTimeField()
def __str__(self):
return self.name
class Meta:
managed = False
db_table = 'tbl_jewellery_inventory_logs'
class TblLockerCoutCin(models.Model):
jewel_item = models.ForeignKey(TblJewelleryInventory, models.DO_NOTHING)
jewel_item_code = models.ForeignKey(TblJewelleryInventory, models.DO_NOTHING, db_column='jewel_item_code')
jewel_item_name = models.ForeignKey(TblJewelleryInventory, models.DO_NOTHING, db_column='jewel_item_name')
reason = models.CharField(max_length=500, blank=True, null=True)
is_check_out = models.IntegerField(blank=True, null=True)
is_check_in = models.IntegerField(blank=True, null=True)
created_at = models.DateTimeField(blank=True, null=True)
def __str__(self):
return self.name
class Meta:
managed = False
db_table = 'tbl_locker_cout_cin'
在您的}字段都与
TblLockerCoutCin
模型中,jewel_item_code
和{TblJewelleryInventory
模型(特别是pk
字段)有多对一的关系。因此,当TblJewelleryInventory
的实例试图遍历任何一个字段的反向关系时,它将尝试在这两种情况下使用tbllockercoutcin_set
,这将导致歧义,因为两个反向关系都是以相同的名称引用的。在在本例中,您希望使用
related_name
参数并为字段设置不同的访问器名称,例如:相关问题 更多 >
编程相关推荐