Исключить использованные предметы в отношениях "один ко многим
Я пытаюсь реализовать эти отношения:
Пользователь может иметь несколько социальных сетей, но каждая социальная сеть ТОЛЬКО ОДИН РАЗ
.У социальной сети может быть несколько пользователей.
Мне нужно, чтобы пользователь не выбирал более одного раза одну и ту же социалку.
Это то, что должно быть сделано в модели, или последующая фильтрация - выбор пользователя
class Social(models.Model):
name = models.CharField(max_length=200)
link = models.CharField(max_length=200)
def __str__(self):
return self.name
class Social2User(models.Model):
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
social = models.ForeignKey(Social, null=True, on_delete=models.CASCADE)
class Meta:
constraints = [
models.UniqueConstraint(
fields=['user', 'social'], name='unique_migration_host_combination'
)
]
def __str__(self):
return self.user.username + '-' + self.social.name
class UserInfos(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
bio = models.TextField(null=False)
def __str__(self):
return self.user.username
Спасибо