如何在get_object_or_404或objects.get中为模型使用变量

时间:2013-04-12 19:39:22

标签: python django django-models django-views

在Django中,如何使用变量动态使用get_object_or_404或objects.get

get_object_or_404(${Variable}, pk=id)

${Variable}.objects.get(pk=id)

2 个答案:

答案 0 :(得分:0)

没问题,假设您有两个模型PostComment,您可以拥有:

from app import models as app_models

dynamic_object = getattr(app_models, 'post')

所以你可以使用它:

dynamic_object.objects.get(pk=id)

get_object_or_404(dynamic_object, pk=id)

答案 1 :(得分:0)

如果您确保在参数中传递 Django ORM模型类,则get_object_or_404()将正常工作。

def do_something(id,MyDjangoModelObject = None)
    if MyDjangoModelObject:
        get_object_or_404(MyDjangoModelObject, pk=id)

MyDjangoModelObject.objects.get(pk=id)