from django.db import models from django.core.validators import MaxValueValidator, MinValueValidator class Review(models.Model): project = models.ForeignKey('projects.Project', related_name='reviews') stars = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(5)]) text = models.TextField() target_customer = models.ForeignKey('users.User', related_name='reviews_by_contractor', null=True, blank=True) target_contractor = models.ForeignKey('users.User', related_name='reviews_by_customer', null=True, blank=True) from_customer = models.ForeignKey('users.User', related_name='contractor_reviews', null=True, blank=True) from_contractor = models.ForeignKey('users.User', related_name='customer_reviews', null=True, blank=True) def __str__(self): return str(self.pk) class Meta: verbose_name = 'Отзыв' verbose_name_plural = 'Отзывы' unique_together = ( ('from_customer', 'target_contractor', 'project'), ('from_contractor', 'target_customer', 'project'), )