Dee*_*eep 10 django django-haystack django-rest-framework
我想知道,我如何使用django-rest-framework从get请求中提供分页的json结果q=thisterm.
我理解干草堆结束使用SearchQuerySet.filter(content=q)但是如何使用此查询集序列化和创建api视图.我不确定使用哪个视图集,也不确定我在其余部分需要做的基本逻辑.
任何帮助,将不胜感激.
谢谢
Dee*_*eep 11
经过大量的反复试验,我找到了正确的组合!这是一个开始.
定义序列化程序:serializers.py
class DotaSearchSerializer(serializers.Serializer):
text = serializers.CharField()
name = serializers.CharField()
quality = serializers.CharField()
type = serializers.CharField()
rarity = serializers.CharField()
hero = serializers.CharField()
image = serializers.CharField()
desc = serializers.CharField()
Run Code Online (Sandbox Code Playgroud)
创建视图:views.py
class DotaSearchViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
serializer_class = DotaSearchSerializer
permission_classes = (IsAuthenticated,)
authentication_classes = (SessionAuthentication, BasicAuthentication)
def get_queryset(self, *args, **kwargs):
request = self.request
queryset = EmptySearchQuerySet()
if request.GET.get('q') is not None:
query = request.GET.get('q')
queryset = SearchQuerySet().filter(content=query)
return queryset
Run Code Online (Sandbox Code Playgroud)
请注意,您可能希望清理输入并执行其他安全检查.
路由它:urls.py
router.register(r'search', api_views.DotaSearchViewSet, base_name='search')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2350 次 |
| 最近记录: |