Добавление значения только один раз в поле 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)