создание модели django для обзора дает это сообщение - PullRequest
0 голосов
/ 29 мая 2020

Когда я пытаюсь создать таблицу отзывов, я получаю следующее сообщение об ошибке. 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).

logi c за моим модели заключается в том, что на лицо может просмотреть другой человек. Кроме того, когда рецензент или рецензент удаляются из таблицы, рецензия также должна быть удалена.

Надеюсь, вы поняли мою идею.

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете сделать, а затем выполнить миграцию:

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. Взгляните на этот вопрос SO для лучшего понимания.

...