从 api 请求中获取模型对象



我有一个从许多模块调用的api_view。

url(r'^[0-9a-z-]+/(?P<pk>[0-9a-z-]+)/activate_entity/$', activate_entity)

@api_view(['POST', 'GET'])
def activate_entity(request, pk, *args, **kwargs):

在不编写太多 if 语句的情况下activate_entity视图中动态获取模型对象的实例的正确方法是什么? ,例如我从模块发票调用它

api/v1/invoice/8f9ef9aa-94ac-412d-ba9d-343a70b55a96/activate_entity/
api/v1/finance/1234f9aa-94ac-412d-ba9d-343a70b55a96/activate_entity/
url(r'^(?P<entity>[0-9a-z-]+)/(?P<pk>[0-9a-z-]+)/activate_entity/$', activate_entity)

甚至

url(r'^(?P<entity>(invoice|finance|...))/(?P<pk>[0-9a-z-]+)/activate_entity/$', activate_entity)

path('<slug:entity>/<uuid:pk>/activate_entity/', activate_entity)

然后

def activate_entity(request, entity, pk, *args, **kwargs):
from django.apps import apps
m = apps.get_model(app_label='my_app', model_name=entity)
obj = m.objects.get(pk=pk)
...

相关内容

  • 没有找到相关文章

最新更新