在Django中,如何使用变量动态使用get_object_or_404或objects.get
get_object_or_404(${Variable}, pk=id)
或
${Variable}.objects.get(pk=id)
答案 0 :(得分:0)
没问题,假设您有两个模型Post
和Comment
,您可以拥有:
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)