本站消息

站长简介/公众号


站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群.欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

可以在 django 模型对象的同一方法中多次调用 save 方法吗?

发布于2022-05-07 23:50     阅读(1050)     评论(0)     点赞(18)     收藏(3)



比如说,有一种方法创建一个模型对象并将值添加到模型对象字段。

def main_method():
    obj, created = ModelA.objects.get_or_create(a="asd", b=1)

一些导入的数据将附加到相关字段:

    obj.c = "qwe"
    obj.d = 2
    ...
    sub_method_1(obj)
    sub_method_2(obj)

此外,还有 2 个或更多子方法创建新模型对象并链接到主对象作为外键。

def sub_method_1(obj):
    obj_new, created = ModelB.objects.get_or_create(...)
    obj.e = new_obj
    obj.save()

def sub_method_2(obj):
    obj_new, created = ModelC.objects.get_or_create(...)
    obj.f = new_obj
    obj.save()

但是,当子方法完成并返回主方法时,还有几个可用的保存方法调用。

def main_method():
    ....
    obj.g = "ert"
    obj.h = 3
    obj.save()

这种方法在实践中是否可行,或者在主方法的末尾应该只有一个保存,从子方法返回新对象并在保存主对象之前将对象分配给外键字段?

请您给我一份有关这些方法优缺点的文档吗?


解决方案


更好的选择是将所有方法用作setter ,并在您真正完成使用实例时调用方法save()或者您确实需要数据库中存在的方法。

当然,取决于您的工作情况,但通常是更好的选择:)

站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群
欢迎关注我的公众号:程序员总部,关注公众号回复python,免费领取 全套python视频教程,关注公众号回复充值+你的账号,免费为您充值1000积分







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1489052/8b273d8416aaf1286ec6/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

18 0
收藏该文
已收藏

评论内容:(最多支持255个字符)