首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从api请求获取模型对象

从api请求获取模型对象
EN

Stack Overflow用户
提问于 2018-08-13 09:07:54
回答 1查看 280关注 0票数 1

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

代码语言:javascript
复制
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视图中动态获取模型对象实例的正确方法是什么?例如,我从模块发票中调用它。

代码语言:javascript
复制
api/v1/invoice/8f9ef9aa-94ac-412d-ba9d-343a70b55a96/activate_entity/
api/v1/finance/1234f9aa-94ac-412d-ba9d-343a70b55a96/activate_entity/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-13 09:31:32

代码语言:javascript
复制
url(r'^(?P<entity>[0-9a-z\-]+)/(?P<pk>[0-9a-z\-]+)/activate_entity/$', activate_entity)

甚至是

代码语言:javascript
复制
url(r'^(?P<entity>(invoice|finance|...))/(?P<pk>[0-9a-z\-]+)/activate_entity/$', activate_entity)

代码语言:javascript
复制
path('<slug:entity>/<uuid:pk>/activate_entity/', activate_entity)

然后

代码语言:javascript
复制
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)
    ...
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51818837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档