Django模型;保存时在多个字段中保存额外项目
因此,我目前正在现有数据库的基础上实现一个新的标签系统 当前的标记系统使用多个字段,但是客户端希望使用逗号分隔的输入字段(CharField) 因此,我认为在不影响当前体系结构的情况下,最好的方法是启用新的逗号分隔字段,但像以前的manytomy体系结构一样删除标记 但是不管我怎么做,标记都会保存到数据库标记模型中,但不会保存在它们应该应用的条目上 简单概述:Django模型;保存时在多个字段中保存额外项目,django,manytomanyfield,Django,Manytomanyfield,因此,我目前正在现有数据库的基础上实现一个新的标签系统 当前的标记系统使用多个字段,但是客户端希望使用逗号分隔的输入字段(CharField) 因此,我认为在不影响当前体系结构的情况下,最好的方法是启用新的逗号分隔字段,但像以前的manytomy体系结构一样删除标记 但是不管我怎么做,标记都会保存到数据库标记模型中,但不会保存在它们应该应用的条目上 简单概述: def save(self, *args, **kwargs): currTags = self.placeHolderTa
def save(self, *args, **kwargs):
currTags = self.placeHolderTags.split(",")
for tag in currTags:
dbtag, created = Tag.objects.get_or_create(name=tag)
self.tags.add(dbtag)
super(BeeldBankEntry, self).save(*args, **kwargs)
进一步的模型背景:
tags = models.ManyToManyField(Tag, verbose_name='Tags', blank=True)
placeHolderTags = models.CharField(max_length=400, verbose_name='Tags2', blank=True)
这是因为django在模型本身之后保存m2m字段。我不确定在save()中的代码之前保存是否有帮助,请看一下d信号-它看起来正是您所需要的。这将导致无限循环,但我确实一直在移动super.save()之后添加标记,但这并没有真正起作用。我将研究信号,似乎很有希望。get\u或\u create()返回一个查询集,您是否尝试过get\u或\u create()[0]?get\u或\u create返回(object,created\u flag)的元组