Невозможно установить отношение «многие ко многим» в перезаписанном методе сохранения - PullRequest
0 голосов
/ 08 июня 2019

Я пытаюсь создать систему, в которой я настроил проблему, и она автоматически создает настраиваемые поля, которые пользователь определит, сохраненные в другой модели.Я установил текущую модель с отношением «многие ко многим» к модели настраиваемого поля и переписал метод сохранения, чтобы каждое из настраиваемых полей было добавлено со значением по умолчанию.

Когда я использую .addМетод после сохранения моей модели проблем, кажется, ничего не происходит, отношения многие ко многим не создаются.Отношения могут быть установлены в интерфейсе администратора Django.

класс Issue (models.Model):

class Meta:
    verbose_name = "Issues"
    verbose_name_plural = "Issues"

title = models.TextField(null=False, blank=False)
description = models.TextField()
owner = models.ForeignKey(Organisation, on_delete=models.CASCADE)
category = models.ForeignKey(IssueCategory, on_delete=models.CASCADE)
state = models.ForeignKey(IssueStates, on_delete=models.CASCADE)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
assignedTo = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
customFields = models.ManyToManyField(IssueCustomFields, blank=True)

def save(self, *args, **kwargs):

    super(Issue, self).save(*args, **kwargs)

    for x in IssueCustomFieldDefinitions.objects.filter(owner=self.owner):

        issueCustom = IssueCustomFields.objects.create(
            value=x.default,
            fieldDefinition = x,
            owner = self.owner,
        )

        self.customFields.add(issueCustom)
        print(self.customFields.all())

Я ожидаю, что при сохранении модели Issue она перебирает все настраиваемые пользователем поля и создает экземпляроб этом, а также установление отношений.Связь никогда не устанавливается (хотя экземпляры создаются)

1 Ответ

0 голосов
/ 08 июня 2019

отношение многие ко многим не зависит от метода сохранения.если вы назначаете связь между двумя моделями со многими ко многим, вам не нужно сохранять какую-либо из этих моделей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...