gpt4 book ai didi

python - get_or_create() 问题

转载 作者:行者123 更新时间:2023-11-28 22:06:44 25 4
gpt4 key购买 nike

从官方文档看,我无法理解什么是默认参数。

obj, created = Person.objects.get_or_create(first_name='John', last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)}

这是否意味着它会查找同时匹配 JohnLennon 参数的字段,并且生日会被插入?我可以使用其他东西代替默认值吗?

我应该用什么方法来清理表(模型)中的所有字段?

它给我 FileField 错误 cannot resolve keyword default in field

所以我需要寻找字段,如果我找到它 - 更新数据。如果我没有找到它,我必须创建新字段......但是,正如我所理解的那样,当找到当前字段时它不会更新我的默认字段。

最佳答案

很明显 - 如果 get_or_create 找到查询的对象,defaults 关键字什么也不做。但是,如果它创建对象,则存储在 obj 中的实例有 birthday 字段(在您的示例中)填充了相应的值。您可以将任何字典作为 defaults 传递,只要它的键是您正在查询的模型的有效字段名称即可。

要清理整张 table ,你应该使用类似的东西:

Model.objects.all().delete()

相当于:

DELETE FROM app_model WHERE True;

要在每个对象中设置一些字段(每行中的一些列),有 update() 方法:

Model.objects.all().update( some_field = "" )

转化为:

UPDATE app_model SET `some_field` = '' WHERE True;

我的 sql 有点生疏,但我相信它或多或少是这样的。

关于python - get_or_create() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3225855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com