Ric*_*ick 5 python django code-reuse object getattr
在尝试让它工作一段时间并且四处搜索之后我真的很难过,所以我在这里发帖...我想在我为django编写的类中创建一些函数尽可能通用,所以我想使用getattr来调用通用方式如下所示的函数:
我这样做的方式(非通用方式):
from django.db.models import get_model
mymodel = get_model('appname', 'modelname')
dbobject = mymodel.objects.all()
Run Code Online (Sandbox Code Playgroud)
我的一个尝试以通用的方式创建它,仍然无法正常工作,它确实返回一些东西,但它不是正确的对象类型,以便我可以从中获取数据(它是django的数据库调用)
ret = getattr(mymodel,'objects')
dbobject = getattr(ret,'all')
Run Code Online (Sandbox Code Playgroud)
Dun*_*can 12
你忘了给结果打电话了.
dbobject = mymodel.objects.all()
Run Code Online (Sandbox Code Playgroud)
访问该方法mymodel.objects.all然后调用它.
ret = getattr(mymodel,'objects')
self.dbobject = getattr(ret,'all')
Run Code Online (Sandbox Code Playgroud)
访问该方法mymodel.objects.all但不调用它.
您所需要的只是将最后一行更改为:
self.dbobject = getattr(ret,'all')()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11032 次 |
| 最近记录: |