manytomany字段不工作django-cms

时间:2017-08-17 10:39:48

标签: python django django-admin django-cms

我正在使用django-cms 当我添加插件或更新时,多对多字段工作正常 在发布页面后,我没有获得任何数据,我添加了许多到多个字段。

模型看起来像这样

@python_2_unicode_compatible
class ClientLogo(CMSPlugin):
  client_logo = models.ManyToManyField(LogoPluginModel, blank=True)

class LogoPluginModel(CMSPlugin):
  title = models.CharField(max_length=100)

此处字段' client_logo'当我发布djagno-cms页面

时会消失

1 个答案:

答案 0 :(得分:1)

需要通过copy_relations方法明确复制关系(请参阅django-cms models manual)。向ManyToManyField添加related_name属性也是有利的,特别是当模型包含多组外键或ManyToManyFields时。

@python_2_unicode_compatible
class ClientLogo(CMSPlugin):
  client_logo = models.ManyToManyField(
    LogoPluginModel,
    blank=True,
    related_name='client_logos',
  )


class LogoPluginModel(CMSPlugin):
  title = models.CharField(max_length=100)

  def copy_relations(self, oldinstance):
    self.client_logos.all().delete()
    for logo in oldinstance.client_logos.all():
      logo.pk = None
      logo.showroom = self
      logo.save()