我一直在尝试使用url.py文件中的re_path方法获取泛型RetrieveAPIView
类。在尝试了几个组合之后,我只能让path方法工作。我想得到一个类似于/file?id={some_uid}
的端点
到目前为止,我有以下几点:
视图。py:
class UploadFileInfoView(generics.RetrieveAPIView):
lookup_field = "id"
queryset = Upload.objects.all()
serializer_class = UploadModelSerializer
url.py:
from django.urls import path, re_path
from . import views
urlpatterns = [
path("file/", views.UploadFileView.as_view(), name="UploadFile"),
# this works
# path("file/<uuid:id>", views.UploadFileInfoView.as_view(), name="UploadFileInfo"),
# this does not
re_path(r"^file/(?P<id>[0-9A-Fa-f-]+)", views.UploadFileInfoView.as_view(), name="UploadFileInfo"),
]
没有像文档中说的那样使用url方法
This function is an alias to
django.urls.re_path()
. It’s likely to be deprecated in a future release.
据我所知,默认情况下,查询参数被传递给django视图。因此,您不需要在URL中显式地处理它。在您的情况下,如果需要
/file?id={some_uid}
,应该在视图中处理它或覆盖get_queryset
方法url.py
views.py
上述设置将用于
/file/?id=1234
并返回Upload.objects.get(id=1234)
。我还没有测试过这段代码,但它应该可以工作,如果对象不存在,您还需要处理异常相关问题 更多 >
编程相关推荐