嘿,伙计们,我已经为这个问题扯了一整天的头发,我似乎找不到办法来解决它:/。因此,基本上,我试图通过同一模型中的另一个many2many字段预填充many2many字段来保存模型:
class CommissionReport(models.Model):
...
law = models.ManyToManyField('Law', blank=True, null=True)
categories = models.ManyToManyField('LawCategory', blank=True, null=True)
...
Law模型有category字段,这个字段比lawcegory多很多,我正在尝试捕获它并将这些类别添加到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)
它实际上打印的是正确的类别,但不会将它们添加或保存到模型中。你知道吗
提前谢谢。你知道吗
您可以重用给定的实例,而不是获取报表。像这样:
相关问题 更多 >
编程相关推荐