【发布时间】:2021-04-21 00:11:22
【问题描述】:
我正在寻找相关主题的答案,但没有一个有效。所以按照关于filtering的Django Rest Guid,我想添加通过url过滤数据的可能性。
我有我的看法:
class ArtistList(generics.ListAPIView):
serializer_class = ArtistSerializer
def get_queryset(self):
queryset = Artist.objects.all()
name = self.request.query_params.get('name', None)
print(name)
if name is not None:
queryset = queryset.filter(name=name)
return queryset
还有我的网址文件:
urlpatterns = [
...
path('artists/<str:name>', ArtistList.as_view(), name='artists'),
]
当我提供如下网址时:http://localhost:8000/artists?name=A5 它表明该网址不存在。
我也在尝试http://localhost:8000/artists/A5,这会导致返回所有艺术家而不是只有 1 个。
我也在尝试re_path('^artists/(?P<name>.+)/$', ArtistList.as_view(), name='artists'),,就像指南中的示例一样,但我仍然遇到错误。这里有什么问题?
我还有第二个问题。使用参数操作 url 的最佳方法是什么?我的意思是我应该声明第一个 url 用于返回所有对象,而第二个 url 只用于返回特定对象吗?
【问题讨论】:
标签: django-rest-framework django-urls url-parameters