【问题标题】:Clone model object values Django克隆模型对象值 Django
【发布时间】:2020-10-26 19:39:20
【问题描述】:

我想从现有模型对象中克隆值并清理特殊字符的值以提供更好的搜索。所以我已经在数据库中拥有了我想要清理并存储在新对象中的值。

这是一个代码示例:

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 字符替换无法通过视图完成。

谢谢

【问题讨论】:

    标签: python django graphene-django


    【解决方案1】:

    清理现有对象:[假设您具有清理名为 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      • 2012-07-25
      • 2014-05-11
      • 2011-11-07
      • 2017-01-18
      相关资源
      最近更新 更多