Каким будет a models.py должен выглядеть, если я хочу, чтобы один список был написан только одним пользователем? [Пользователь может создать много списков]]

#python #django #models

#python #django #Модели

Вопрос:

Это models.py:

 class List(models.Model):
'''
This is the database table definition of List objects
'''
user=models.ForeignKey(User,on_delete=models.CASCADE)
name=models.CharField(blank=False,max_length=255)
timestamp=models.DateTimeField(auto_now_add=True)


class Meta:
    unique_together=['name','user']
    ordering = ['-timestamp']

def __str__(self):
    return self.name

def __unicode__(self):
    return self.name
  

Это должно привести к ошибке:

     user_obj1 = get_user_obj_by_name('Conor Lalor')
    user_obj2=get_user_obj_by_name()

    list_obj = List.objects.create(
        user=user_obj1,
        name='demo_list',
    )
    #with self.assertRaises(ValidationError):
    user_obj2.list_set.add(list_obj)
  

Итак, мой вопрос в том, как мне следует разрабатывать свои модели.py, чтобы получить желаемую ошибку или проверку. Я знаю, что это можно сделать путем очистки в forms.py но на этом уровне, как я должен выдать эту простую ошибку?
Заранее спасибо.

Комментарии:

1. Почему это должно вызывать ошибку? В названии явно указано, что у пользователя может быть много списков.

2. Да, но список, в котором есть один пользователь, не может быть использован другим пользователем. @DanielRoseman