问题描述
我想从现有模型对象中克隆值,并清理特殊字符的值以提供更好的搜索。因此,我已经在数据库中具有要清理的值,然后将其存储在新对象中。
class Entry(models.Model):
headline = models.CharField(max_length=255)
sanitized_headline = models.CharField(max_length=255)
我想在克隆之前将一些re.sub('č','c',headline)
这样的字符替换应用于标题之后,用相应的标题值填充所有sanitized_headline对象,并对每个新条目都这样做。
我无法通过视图来使用Django替换GraphQl API字符。
谢谢
解决方法
要清理现有对象,请执行以下操作:[只要您具有清理名为sanitize
的文本的功能]
输入您的Django Shell(使用python manage.py shell
)并导入Entry
模型。然后:
all_entries = Entry.objects.all()
for obj in all_entries:
obj.sanitized_headline = sanitize(obj.headline)
obj.save()
要自动清理新对象,您必须覆盖保存方法:
class Entry(models.Model):
headline = models.CharField(max_length=255)
sanitized_headline = models.CharField(max_length=255)
def save(self,*args,**kwargs):
self.sanitized_headline = sanitize(self.headline)
super().save(*args,**kwargs)