【问题标题】:Haystack - 'SearchQuerySet' object has no attribute 'model'Haystack - 'SearchQuerySet' 对象没有属性 'model'
【发布时间】:2016-04-20 15:42:04
【问题描述】:

我正在尝试序列化 haystack 结果,

api.py

class PinSearchViewSet(viewsets.ReadOnlyModelViewSet):
    http_method_names = ['get']
    queryset = Pin.objects.all()
    serializer_class = PinSearchSerializer

    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

serializer.py

class PinSearchSerializer(serializers.ModelSerializer):
    class Meta:
        model = Pin
        fields = ('id', 'office_name', 'pin_code', 'office_type', 'delivery_status',
                  'division_name', 'region_name', 'circle_name', 'taluk', 'district', 'state')

但我收到以下错误,

“SearchQuerySet”对象没有“模型”属性

【问题讨论】:

    标签: python django django-rest-framework django-haystack


    【解决方案1】:

    序列化程序需要 pin 对象,但您返回的是 SearchResut 对象

    试试这个

    class PinSearchViewSet(viewsets.ReadOnlyModelViewSet):
        http_method_names = ['get']
        queryset = Pin.objects.all()
        serializer_class = PinSearchSerializer
    
        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).models(Pin)
            return [i.object for i in queryset]
    

    我还在 searchQuerySet

    中指定了 pin 模型

    【讨论】:

    • 但我不确定您指定的错误。也许您尝试过 SearchQuerySet().model()?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多