0

When i try to create the reviews table, i get the the following error message. The models.py and error message in the terminal is mentioned below.

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)

terminal output

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).

The logic behind my models is that on person can review another person. Also, when either reviewer or reviewee is deleted from the table, the review should also be deleted.

i hope you got my idea.

akbar ali
  • 25
  • 5

1 Answers1

0

You can do and then migrate:

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

Now, on reverse you can get reviewee from person.reviews which is by default. And, get reviewer from person.reviewer. Have a look at this SO question for greater understanding.

Biplove Lamichhane
  • 3,995
  • 4
  • 14
  • 30