我想知道是否有一种使用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'])
我怀疑您最好的选择是手动将模型映射到url模式-与不太相似URLConf
。
如果这样不会使您的船摇晃,您可以将路径驶入resolve
。
这会给你一个ResolverMatch
在其中,你会发现func
这是由返回as_view
打电话时您设置的URL。
__name__
视图函数的属性将是原始视图类的属性。做一些像globals()[class_name]
上课的事情。
从那里访问model
属性。
希望对您有所帮助。正如我所说,您可能只想自己将模型映射到URL。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句