Django REST框架,从URL获取对象

Vin*_*lvo 5 django-rest-framework

我想知道是否存在使用django rest框架从其URL检索对象的干净方法。当然应该有,因为使用时似乎正在发生HyperlinkedRelatedField

例如,我将此URL /api/comment/26作为字符串。从我的角度来看,我该如何使用评论实例pk=26

当然,我可以重做工作并在字符串上工作,但这一定是更好的方法吗?

非常感谢。

编辑:

这是我最后解决的方法:

resolve('/api/comment/26/').func.cls.model将返回我的模型评论。 resolve('/api/category/1/').kwargs['pk']将返回pk。

这给你:

from django.core.urlresolvers import resolve

resolved_func, unused_args, resolved_kwargs = resolve('/api/category/1/')
resolved_func.cls.model.objects.get(pk=resolved_kwargs['pk'])
Run Code Online (Sandbox Code Playgroud)

Car*_*son 3

我怀疑你最好的选择是手动保存模型到 url 模式\xc2\xa0\xe2\x80\x94 的映射,与URLConf.

\n\n

如果这不会影响你的船,你可以通过路径进入resolve.

\n\n

这将为您提供一个ResolverMatch,您可以在其中找到设置 URL 时func调用返回的信息。as_view

\n\n

视图函数的属性__name__将是原始视图类的属性。做一些类似globals()[class_name]获取课程本身的事情。

\n\n

从那里访问该model属性。

\n\n

我希望这有帮助。正如我所说,您可能只想自己将模型映射到 URL。

\n