【问题标题】:Django models TextField/CharField: Remove null charactersDjango 模型 TextField/CharField:删除空字符
【发布时间】:2017-11-24 12:20:02
【问题描述】:

我有一个视图,它在很多部分都从一个不受信任的来源获取数据,我想将数据保存在 Django 模型的TextField 中。输入可能有空字符,如果我理解正确,Postgres(我项目的后端)禁止在数据库中保存空字符。我可以使用str.replace 来替换空字符,但我必须用str.replace 来混淆我的代码库,因为我有很多点需要从不受信任的数据中创建模型。有没有办法强制清理模型级别的数据?我的意思是,这样我就可以做my_model.save(),并且在我的代码中的一个独特位置有str.replace,而不是在我有TextField的所有地方都有它。

【问题讨论】:

    标签: django postgresql django-models


    【解决方案1】:

    您可以通过以下方式编写保存后信号来做到这一点: https://docs.djangoproject.com/en/1.11/ref/signals/#post-save

    这是一个示例实现:

    from django.db.models.signals import post_save
    from django.dispatch import receiver
    
    class SampleModel(models.Model):
        # ... fields here
    
    # method for your validations
    @receiver(post_save, sender=SampleModel)
    def validate_input(sender, instance, **kwargs):
         # your custom validations
         instance.save()
    

    【讨论】:

      猜你喜欢
      • 2014-12-30
      • 1970-01-01
      • 2016-12-24
      • 2014-05-04
      • 2012-02-24
      • 2015-06-03
      • 2021-08-04
      相关资源
      最近更新 更多