Как сделать уникальные значения названий тем для каждого пользователя отдельно?
Как сделать модель, чтоб для каждого пользователя создавались уникальные значения тем? Я смог сделать для всех пользователей в базе данных уникальные значения тем. Но не могу сделать уникальными значения тем для каждого пользователя отдельно.
class Topic(models.Model):
'''Тема, которая изучается пользователем'''
text = models.CharField(max_length=200, unique=True)
date_added = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
'''Возвращает строковое представление модели'''
return self.text
Ответы (1 шт):
Автор решения: Alpensin
→ Ссылка
Добавьте в класс Meta constraint.
class Topic(models.Model):
'''Тема, которая изучается пользователем'''
text = models.CharField(max_length=200, unique=True)
date_added = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
class Meta:
constraints = [
models.UniqueConstraint(
fields=["text", "owner"], name="unique_topic_for_owner"
),
]
def __str__(self):
'''Возвращает строковое представление модели'''
return self.text