【问题标题】:manytomany field not working django-cmsmanytomany 字段不工作 django-cms
【发布时间】:2018-01-25 17:43:54
【问题描述】:

我正在使用 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)

当我发布 djagno-cms 页面时,此处的字段“client_logo”将消失

【问题讨论】:

标签: python django django-admin django-cms


【解决方案1】:

需要通过copy_relations 方法显式复制关系(请参阅django-cms models manual)。将related_name 属性添加到ManyToManyField 也是有利的,尤其是当模型包含多组外键或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()

【讨论】:

    猜你喜欢
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2011-04-26
    • 2017-10-18
    • 1970-01-01
    • 2020-02-18
    相关资源
    最近更新 更多