如何在覆盖django save()方法时更改输入字段

卢卡斯·欧阳

假设我有以下代码:

 class MyModel(models.Model):
     ...
     ...

    def save(self, *args, **kwargs):
        # pre-save edits can go here...
        super(MyModel, self).save(*args, **kwargs)

当我创建并保存模型MyModel(blah,blah,blah)时,输入字段之一可能为“ None”。在覆盖的保存方法中,目标是检查字段是否为空,如果为空,则将其更改为其他默认值。

输入字段是args还是kwargs?覆盖save()甚至是执行此操作的正确方法吗?

我在想这样的事情:

    def save(self, *args, **kwargs):
        if 'username' in args and args['username'] is None:
              args['username'] = some_default_value
        super(MyModel, self).save(*args, **kwargs)

那么输入参数在哪里?args *或** kwargs,谢谢。

Victor Castillo Torres占位符图像

我认为最好pre_save查看输入值是否为None

from django.db import models
from django.db.models.signals import pre_save
from django.dispatch import receiver

class MyModel(models.Model):
    field1 = models.TextField()
    field2 = models.IntegerField()

@receiver(pre_save, sender=MyModel)
def mymodel_save_handler(sender, instance, *args, **kwargs):
     if instance.field1 is None or instance.field1 == "":
         instance.field1 = default_value

如果您喜欢覆盖save方法,则可以model fields使用self

 def save(self, *args, **kwargs):
        if self.username is None:
              self.username = some_default_value
        super(MyModel, self).save(*args, **kwargs)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Django中覆盖model.Manager.create()方法?

来自分类Dev

关注时如何更改输入字段的位置?

来自分类Dev

输入文本时如何更改输入字段的背景色?

来自分类Dev

如何在Django中覆盖模型的__new__元类方法

来自分类Dev

键入[Angular]时如何检测输入字段中的更改

来自分类Dev

在聚焦文本输入字段时如何更改div的背景颜色?

来自分类Dev

Django表单-如何覆盖字段验证

来自分类Dev

如何在Kibana中覆盖字段值?

来自分类Dev

如何在Groovy中覆盖字段

来自分类Dev

覆盖Manager时如何访问Django模型?

来自分类Dev

如何覆盖Django模型的save()方法,以使其正确更新?

来自分类Dev

覆盖save_model方法时如何防止出现“成功更改”消息

来自分类Dev

更改输入字段时,如何在 REACT 中更新段落标签?

来自分类Dev

如何在点击时使图像覆盖网站?

来自分类Dev

如何在悬停时使div覆盖div?

来自分类Dev

如何在方法中覆盖Runnable?

来自分类Dev

如何在Javascript中覆盖父母的方法?

来自分类Dev

如何在odoo方法上覆盖?

来自分类Dev

如何在Ruby中覆盖实例方法

来自分类Dev

输入无效值时,如何更改文本类型输入字段的背景颜色?

来自分类Dev

django覆盖模型save()方法

来自分类Dev

django覆盖模型save()方法

来自分类Dev

Django如何覆盖必填字段的表单验证

来自分类Dev

如何在继承的类中“覆盖”字段的范围?

来自分类Dev

如何在 Django 中显示有关 M2M 字段的附加字段或覆盖 select2-results__option

来自分类Dev

从数据列表中选择时如何检测输入字段已更改?

来自分类Dev

第一次单击HTML输入字段微调器时,如何更改显示的值?

来自分类Dev

当表单中的特定输入字段不为空时如何更改单选按钮选择

来自分类Dev

渲染StackedInline字段时如何覆盖str方法?

Related 相关文章

  1. 1

    如何在Django中覆盖model.Manager.create()方法?

  2. 2

    关注时如何更改输入字段的位置?

  3. 3

    输入文本时如何更改输入字段的背景色?

  4. 4

    如何在Django中覆盖模型的__new__元类方法

  5. 5

    键入[Angular]时如何检测输入字段中的更改

  6. 6

    在聚焦文本输入字段时如何更改div的背景颜色?

  7. 7

    Django表单-如何覆盖字段验证

  8. 8

    如何在Kibana中覆盖字段值?

  9. 9

    如何在Groovy中覆盖字段

  10. 10

    覆盖Manager时如何访问Django模型?

  11. 11

    如何覆盖Django模型的save()方法,以使其正确更新?

  12. 12

    覆盖save_model方法时如何防止出现“成功更改”消息

  13. 13

    更改输入字段时,如何在 REACT 中更新段落标签?

  14. 14

    如何在点击时使图像覆盖网站?

  15. 15

    如何在悬停时使div覆盖div?

  16. 16

    如何在方法中覆盖Runnable?

  17. 17

    如何在Javascript中覆盖父母的方法?

  18. 18

    如何在odoo方法上覆盖?

  19. 19

    如何在Ruby中覆盖实例方法

  20. 20

    输入无效值时,如何更改文本类型输入字段的背景颜色?

  21. 21

    django覆盖模型save()方法

  22. 22

    django覆盖模型save()方法

  23. 23

    Django如何覆盖必填字段的表单验证

  24. 24

    如何在继承的类中“覆盖”字段的范围?

  25. 25

    如何在 Django 中显示有关 M2M 字段的附加字段或覆盖 select2-results__option

  26. 26

    从数据列表中选择时如何检测输入字段已更改?

  27. 27

    第一次单击HTML输入字段微调器时,如何更改显示的值?

  28. 28

    当表单中的特定输入字段不为空时如何更改单选按钮选择

  29. 29

    渲染StackedInline字段时如何覆盖str方法?

热门标签

归档