model.saveDjango fixture时没有调用www.example.com()?

7uzetpgm  于 2023-06-25  发布在  Go
关注(0)|答案(3)|浏览(108)

我覆盖了我的Django模型保存()方法,所以我可以对对象做一些额外的健全性检查。(保存()是执行此操作的正确位置吗?)
我的fixtures/initial_fixtures.yaml对象似乎没有调用它们的保存()方法。我如何对我的装置进行健康检查?

ckx4rj1h

ckx4rj1h1#

从Django 1.5开始,保存()不再被调用:
处理夹具文件时,数据按原样保存到数据库中。不调用模型定义的保存()方法,并且将使用raw=True调用任何pre_save或post_save信号,因为示例仅包含模型本地的属性。
https://docs.djangoproject.com/en/1.9/ref/django-admin/

gt0wga4j

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()中做这件事,如果健全性检查是重要的,那么我认为这不是一个好主意。

wko9yo5t

wko9yo5t3#

您的fixture被假定为良好的数据,而不是有问题的输入,所以我不确定什么时候需要对它们进行健全性检查。
你可以通过admin或应用程序中的其他东西将数据添加到数据库中,然后将其导出为fixture,如果你需要做一些一次性的初始验证的话。

相关问题