我有一个从许多模块调用的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)
...