【发布时间】:2019-12-08 19:37:16
【问题描述】:
我想获取 Django 视图的 URI 模板。在Internet Standards URI template 中,不是 Django url 模板标签。例如,对于带有以下内容的 urls.py:
from rest_framework.routers import SimpleRouter
router = SimpleRouter()
router.register(r'collections', views.CollectionViewSet)
和 view.py 一起
from restframework import viewsets
class CollectionViewSet(viewsets.ModelViewSet):
queryset = Collection.objects.all()
serializer_class = serializers.CollectionSerializer
lookup_field='name'
def list(self, *args, **kwargs):
<...code overriding list...>
我想做的是能够从列表函数中获取 uri 模板,如下所示:
'http://localhost:8000/api/collections/{name}/'
我尝试过使用 rest 框架的 'reverse',它是 django 'reverse' 功能的扩展;像这样:
from rest_framework.reverse import reverse
field=self.lookup_field
url = reverse('collection-detail', args=['temp'], request=request)
url = url.replace('temp', '{' + field + '}')
不过这太笨重了!有没有更好的办法??谢谢你:)
我试图用谷歌搜索,但所有结果都是关于 url 模板标签的,这完全是另外一回事。
【问题讨论】:
标签: python django django-rest-framework uri