我覆盖了我的Django模型保存()方法,所以我可以对对象做一些额外的健全性检查。(保存()是执行此操作的正确位置吗?)我的fixtures/initial_fixtures.yaml对象似乎没有调用它们的保存()方法。我如何对我的装置进行健康检查?
ckx4rj1h1#
从Django 1.5开始,保存()不再被调用:处理夹具文件时,数据按原样保存到数据库中。不调用模型定义的保存()方法,并且将使用raw=True调用任何pre_save或post_save信号,因为示例仅包含模型本地的属性。https://docs.djangoproject.com/en/1.9/ref/django-admin/
gt0wga4j2#
.save()方法在加载夹具期间调用,如www.example.com中所示https://code.djangoproject.com/browser/django/tags/releases/1.3.1/django/core/management/commands/loaddata.py?rev=17029#L174如果你使用不同的DJ版本,你可以检查,但我很肯定它是所谓的旧版本以及。如何检查对象是否调用了save()方法?关于在.save()中做这件事,如果健全性检查是重要的,那么我认为这不是一个好主意。
.save()
save()
wko9yo5t3#
您的fixture被假定为良好的数据,而不是有问题的输入,所以我不确定什么时候需要对它们进行健全性检查。你可以通过admin或应用程序中的其他东西将数据添加到数据库中,然后将其导出为fixture,如果你需要做一些一次性的初始验证的话。
3条答案
按热度按时间ckx4rj1h1#
从Django 1.5开始,保存()不再被调用:
处理夹具文件时,数据按原样保存到数据库中。不调用模型定义的保存()方法,并且将使用raw=True调用任何pre_save或post_save信号,因为示例仅包含模型本地的属性。
https://docs.djangoproject.com/en/1.9/ref/django-admin/
gt0wga4j2#
.save()
方法在加载夹具期间调用,如www.example.com中所示https://code.djangoproject.com/browser/django/tags/releases/1.3.1/django/core/management/commands/loaddata.py?rev=17029#L174如果你使用不同的DJ版本,你可以检查,但我很肯定它是所谓的旧版本以及。
如何检查对象是否调用了
save()
方法?关于在
.save()
中做这件事,如果健全性检查是重要的,那么我认为这不是一个好主意。wko9yo5t3#
您的fixture被假定为良好的数据,而不是有问题的输入,所以我不确定什么时候需要对它们进行健全性检查。
你可以通过admin或应用程序中的其他东西将数据添加到数据库中,然后将其导出为fixture,如果你需要做一些一次性的初始验证的话。