下面是我在Django项目中的models.py文件。 每当我尝试运行项目时,都会出现以下错误。请协助,因为我刚刚开始接听django 我尝试根据错误提示更改外部列的名称,但无济于事。那里有很多答案表明,对我来说,不存在对related_name的更改。
控制台错误
app_fin.TblLockerCoutCin.jewel_item :(字段E304)反向访问器 'TblLockerCoutCin.jewel_item'与反向访问器冲突 'TblLockerCoutCin.jewel_item_code'。提示:添加或更改 定义的related_name参数 'TblLockerCoutCin.jewel_item'或'TblLockerCoutCin.jewel_item_code'。 app_fin.TblLockerCoutCin.jewel_item:(fields.E304)反向访问器 'TblLockerCoutCin.jewel_item'与反向访问器冲突 'TblLockerCoutCin.jewel_item_name'。提示:添加或更改 定义的related_name参数 “ TblLockerCoutCin.jewel_item”或“ TblLockerCoutCin.jewel_item_name”。 app_fin.TblLockerCoutCin.jewel_item_code:(fields.E304)反向 “ TblLockerCoutCin.jewel_item_code”的访问器与反向冲突 “ TblLockerCoutCin.jewel_item”的访问器。提示:添加或更改 定义的related_name参数 'TblLockerCoutCin.jewel_item_code'或'TblLockerCoutCin.jewel_item'。 app_fin.TblLockerCoutCin.jewel_item_code:(fields.E304)反向 “ TblLockerCoutCin.jewel_item_code”的访问器与反向冲突 “ TblLockerCoutCin.jewel_item_name”的访问器。提示:添加或更改 定义的related_name参数 'TblLockerCoutCin.jewel_item_code'或 'TblLockerCoutCin.jewel_item_name'。 app_fin.TblLockerCoutCin.jewel_item_name:(fields.E304)反向 “ TblLockerCoutCin.jewel_item_name”的访问器与反向冲突 “ TblLockerCoutCin.jewel_item”的访问器。提示:添加或更改 定义的related_name参数 “ TblLockerCoutCin.jewel_item_name”或“ TblLockerCoutCin.jewel_item”。 app_fin.TblLockerCoutCin.jewel_item_name:(fields.E304)反向 “ TblLockerCoutCin.jewel_item_name”的访问器与反向冲突 “ TblLockerCoutCin.jewel_item_code”的访问器。提示:添加或更改 定义的related_name参数 'TblLockerCoutCin.jewel_item_name'或 'TblLockerCoutCin.jewel_item_code'。
models.py
from collections import Counter
a = [1,1,2,2,3,3,3,3,4,4,4,4]
result = dict(Counter(a)) # {1: 2, 2: 2, 3: 4, 4: 4}
for index, value in result.items():
print(str(index) + " : " + str(value))
答案 0 :(得分:2)
在您的TblLockerCoutCin
模型中,jewel_item_code
和jewel_item_name
字段都与TblJewelleryInventory
模型(特别是pk
)具有多对一关系领域)。因此,当TblJewelleryInventory
的实例尝试遍历任何一个字段的反向关系时,在两种情况下都将尝试使用tbllockercoutcin_set
-由于两个反向关系都是用相同的名称引用。
在这种情况下,您要使用related_name
参数并为字段设置不同的访问者名称,例如:
jewel_item_code = models.ForeignKey(
TblJewelleryInventory,
on_delete=models.DO_NOTHING,
related_name='jewel_item_code', # Here
db_column='jewel_item_code',
)
jewel_item_name = models.ForeignKey(
TblJewelleryInventory,
on_delete=models.DO_NOTHING,
related_name='jewel_item_name', # Here
db_column='jewel_item_name',
)