Django: отношения Many2Many во время сигнала Pre_Save? - PullRequest
0 голосов
/ 10 октября 2018

Предположим, у нас есть следующий класс:

Класс 'Config'

class Config(models.Model):
    name = models.CharField(max_length=40, editable=True, blank=False, null=False)
    nodes = models.ManyToManyField(HierarchyNode_MPTT)
    element = models.ForeignKey(ForecastConfigurationLayout, on_delete=models.PROTECT, default=None)

Атрибут nodes представляет отношение M: N.Я хочу установить атрибут elements по умолчанию на основе комбинации nodes.Итак, во время процесса сохранения (в идеале pre_save) мне нужно передать все узлы в класс / метод, который возвращает uuid для element.

Итак, я иду в приложение администратора, создаю объект типа Config, выбираю мои узлы на экране и нажимаю кнопку Сохранить.Теперь система должна вызвать класс / метод, передать узлы и обновить element с помощью uuid.Это не работает, потому что отношение M: N в таблице сопоставления между Class и Nodes пока не имеет правильных записей (потому что это pre_save).Я хотел бы избежать post_save, потому что тогда атрибут nodes должен разрешать значения Null.

Любые идеи очень ценятся.

Спасибо, Себастьян

1 Ответ

0 голосов
/ 11 октября 2018

Я использую сигнал m2m_changed для действия post_add.Работает нормально для моего случая использования.

...