创建供审查的Django模型给出了此味精

问题描述 投票:0回答:1

[当我尝试创建评论表时,出现以下错误消息。终端中提到了models.py和错误消息。

models.py

class reviews(models.Model):
    reviewee = models.ForeignKey('Person', on_delete=models.CASCADE)
    reviewer = models.ForeignKey('Person', on_delete=models.CASCADE)
    review = models.TextField()
    rating = models.FloatField()

class Person(models.Model):
    email = models.CharField(max_length=30)
    pwd = models.CharField(max_length=30)
    type = models.CharField(max_length=30)

终端输出

SystemCheckError: System check identified some issues:

ERRORS:
pfapp.reviews.reviewee: (fields.E304) Reverse accessor for 'reviews.reviewee' clashes with reverse accessor for 'reviews.reviewer'.
        HINT: Add or change a related_name argument to the definition for 'reviews.reviewee' or 'reviews.reviewer'.
pfapp.reviews.reviewer: (fields.E304) Reverse accessor for 'reviews.reviewer' clashes with reverse accessor for 'reviews.reviewee'.
        HINT: Add or change a related_name argument to the definition for 'reviews.reviewer' or 'reviews.reviewee'.

System check identified 2 issues (0 silenced).

我的模型背后的逻辑是,一个人可以查看另一个人。同样,当从表中删除审阅者或受审者时,也应删除该审阅。

我希望你有我的主意。

python django django-models django-queryset
1个回答
0
投票

您可以先进行迁移,然后迁移:

reviewee = models.ForeignKey('Person', on_delete=models.CASCADE)
reviewer = models.ForeignKey('Person', on_delete=models.CASCADE, related_name="reviewer", null=True)

现在,相反,您可以从默认情况下的person.reviews中获取被审阅者。并且,从person.reviewer获取reviewer。请查看此SO question以进一步了解。

© www.soinside.com 2019 - 2024. All rights reserved.