Эй, ребята, я разрывал волосы этой проблемой целый день, и я не могу найти способ исправить это: /. Таким образом, в основном I`m пытается предварительно заполнить поле many2many на сохранении модели через другой many2many поля в одной и той же модели:Prepopulating Django M2M field, основанный на другом M2M
class CommissionReport(models.Model):
...
law = models.ManyToManyField('Law', blank=True, null=True)
categories = models.ManyToManyField('LawCategory', blank=True, null=True)
...
Модель Закон имеет категорию поле, которое Many2Many к LawCategory и им пытаются поймать его и добавить те, категорий к категориям модели CommissionReport. Так им с помощью сигнала и способа, здесь код:
@staticmethod
def met(sender, instance, action, reverse, model, pk_set, **kwargs):
if action == 'post_add':
report = CommissionReport.objects.get(pk=instance.pk)
if report.law:
for law in report.law.all():
for category in law.categories.all():
print category
report.categories.add(category)
report.save()
m2m_changed.connect(receiver=CommissionReport.met, sender=CommissionReport.law.through)
Это фактически выводит правильные категории, но Безразлично `добавить их или сохранить их в модель.
Заранее спасибо.
Является ли 'категория'' LawCategory'? – karthikr
Да «категория» является одной из LawCategory, связанной с законом :) –