在相同模型中基于M2M字段的字符串字段

时间:2019-07-08 15:39:33

标签: django django-models many-to-many

我需要基于M2M字段填充CharField(用于分组建议)。为此,我覆盖了save方法(用于创建和更新案例)。在更新情况下,仅适用于旧的M2M选择。在创建的情况下,显示一个错误:

  

“超出了最大递归深度”。

我认为逻辑不是采用参数形式,但是找不到如何访问它们。这是我的代码:

class Content(models.Model):
  specifications = models.ManyToManyField(Specification, blank=True)
  string_specs = models.CharField(max_length=250, null=True, blank=True)

  def save(self, *args, **kwargs):
        if self.pk:
            self.string_specs = " - ".join([str(element) for element in self.specifications.all().order_by('id')])
            super().save(*args, **kwargs)
        else:
            self.string_specs = " - ".join([str(element) for element in self.specifications.all().order_by('id')])
            super().save(*args, **kwargs)

0 个答案:

没有答案