Как сделать так, чтобы один пользователь мог поставить только одну оценку товару?
Как сделать так, чтобы один пользователь мог поставить только одну оценку товару? Я читал о UniqueConstraint, но не могу понять, как его использовать здесь.
models.py
#...
User = get_user_model()
class Item(models.Model):
id = models.PositiveIntegerField(
primary_key=True, validators=[MinValueValidator(1)])
is_published = models.BooleanField(default=True)
name = models.CharField(max_length=150)
text = models.TextField(validators=[validate_correct])
tags = models.ManyToManyField('Tag', blank=True)
category = models.ForeignKey('Category', on_delete=models.CASCADE, blank=True, null=True)
def __str__(self):
return self.name
#...
class Rating(models.Model):
id = models.PositiveIntegerField(
primary_key=True, validators=[MinValueValidator(1)])
EMOTION_TYPES = (
(1, 'Hatred'),
(2, 'Dislike'),
(3, 'Neutral'),
(4, 'Adoration'),
(5, 'Love'),
)
star = models.IntegerField(null=True, choices=EMOTION_TYPES)