我需要基于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)