Добавление значения только один раз в поле ManytoMany во всей таблице
У меня есть поле many-to-many
под названием paper
в модели под названием Issues
. Каждая запись Issues
должна содержать список статей. Но paper
должен быть уникальным во всей issue
таблице.
Другими словами, paper
, добавленный один раз в Issues
, не должен иметь возможности быть добавленным в любую другую запись таблицы Issues
.
Как мне этого достичь?
class Papers(models.Model):
'''
All the published papers
'''
title = models.CharField(max_length=300) # title
def __str__(self):
return self.title
class Issues(models.Model):
'''
All issues
'''
number = models.SmallIntegerField() # issue number
paper = models.ManyToManyField('Papers')
def __str__(self):
return str(self.number)
Вам просто нужно отношение внешнего ключа для этого случая использования
class Papers(models.Model):
'''
All the published papers
'''
title = models.CharField(max_length=300) # title
issue = models.ForeignKey(Issues, on_delete=models.CASCADE)
def __str__(self):
return self.title
class Issues(models.Model):
'''
All issues
'''
number = models.SmallIntegerField() # issue number
def __str__(self):
return str(self.number)