Как сделать уникальные значения названий тем для каждого пользователя отдельно?

Как сделать модель, чтоб для каждого пользователя создавались уникальные значения тем? Я смог сделать для всех пользователей в базе данных уникальные значения тем. Но не могу сделать уникальными значения тем для каждого пользователя отдельно.

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
→ Ссылка