spe*_*ane 4 python django django-models
当您使用defer(...)查询命令时,Django返回与原始模型不同的类.在使用延迟字段时,如何动态获取模型的名称?
在代码中:
obj_nodefer = model_class.objects.filter(title="foo")[0]
model_name = str(type(obj_nodefer)) # Works just fine
obj_defer = model_class.objects.filter(title="foo").defer("content")[0]
model_name = str(type(obj_defer)) # Does't return the right name because of defer above.
Run Code Online (Sandbox Code Playgroud)
我如何从中获取模型的名称obj_defer?
小智 5
在延迟类上,您还可以在不__class__.__name__使用以下操作字符串的情况下获取原始类:
obj._meta.concrete_model
'product.models.ProductModelName'
obj._meta.concrete_model._meta.app_label
'product'
obj._meta.concrete_model._meta.model_name
'productmodelname'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |