gpt4 book ai didi

Python,Django,如何使用getattr(或其他方法)调用具有多个属性的对象?

转载 作者:太空狗 更新时间:2023-10-30 00:28:48 25 4
gpt4 key购买 nike

在尝试让它工作一段时间并四处搜索后,我真的很困惑,所以我在这里发帖......我想在我为 django 编写的类中制作一些函数尽可能通用,所以我想使用getattr 以通用方式调用如下函数:

我的工作方式(非通用方式):

from django.db.models import get_model
mymodel = get_model('appname', 'modelname')
dbobject = mymodel.objects.all()

我的一次尝试以通用方式创建它,但仍然无法正常工作,它确实返回了一些东西,但它不是正确的对象类型,因此我可以从中获取数据(它是对 django 的数据库调用)

ret = getattr(mymodel,'objects')
dbobject = getattr(ret,'all')

最佳答案

你忘了调用结果。

dbobject = mymodel.objects.all()

访问方法 mymodel.objects.all 然后调用它。

ret = getattr(mymodel,'objects')
self.dbobject = getattr(ret,'all')

访问方法 mymodel.objects.all 但不调用它。

您只需将最后一行更改为:

self.dbobject = getattr(ret,'all')()

关于Python,Django,如何使用getattr(或其他方法)调用具有多个属性的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698845/

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