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