在名为 object_type 的变量中,我存储的值如下: Profile 或 Company ,它们是应用程序中可用模型的名称。两个模型都有名为 uuid 的字段。
我需要这样的事情:
get_object_or_404(object_type, uuid=uuid_from_request)
如何传递object_type值(Profile或Company)来查询正确的模型?
答案 0 :(得分:3)
如何使用将模型名称映射到模型类的字典:
object_types = {'Profile': Profile, 'Company': Compnay}
...
get_object_or_404(object_types[object_type], uuid=uuid_from_request)
或使用getattr
:
import app.models
get_object_or_404(getattr(app.model, object_type), uuid=uuid_from_request)
答案 1 :(得分:1)
在django中,所有模型类型都存储在魔法缓存中,因此您可以使用此缓存来获取模型类型,如:
from django.db.models.loading import get_model
Model = get_model("your_app_name", "Profile")
get_object_or_404(object_type, uuid=uuid_from_request)