AttributeError: объект 'list' не имеет атрибута 'split' Django Haystack Solr

Я работаю с django-haystack для использования solr. Однако, я получил "AttributeError: 'list' object has no attribute 'split'", когда я ищу что-то по адресу "127.0.0.1:8000/blog/search". Как решить эту проблему? Терминал говорит, что в blog/views.py "total_results = results.count()" произошла ошибка.

  • blog/views.py

    from django.shortcuts import render, get_object_or_404
    from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
    from django.core.mail import send_mail
    from django.views.generic import ListView
    from django.db.models import Count
    from taggit.models import Tag
    from .models import Post, Comment
    from .forms import EmailPostForm, CommentForm, SearchForm
    from haystack.query import SearchQuerySet
    
    def post_search(request):
        form = SearchForm()
        if 'query' in request.GET:
            form = SearchForm(request.GET)
            if form.is_valid():
                cd = form.cleaned_data
                results = SearchQuerySet().models(Post).filter(content=cd['query']).load_all()
                print(results)
                # count total results
                total_results = results.count()
            return render(request, 'blog/post/search.html', {'form': form, 'cd': cd, 'results': results, 'total_results': total_results})
        return render(request, 'blog/post/search.html', {'form': form})
  • blog/forms.py

    from django import forms
    from .models import Comment
    
    class EmailPostForm(forms.Form):
        name = forms.CharField(max_length=25)
        email = forms.EmailField()
        to = forms.EmailField()
        comments = forms.CharField(required=False, widget=forms.Textarea)
        
    class CommentForm(forms.ModelForm):
        class Meta:
            model = Comment
            fields = ('name', 'email', 'body')
    
    class SearchForm(forms.Form):
        query = forms.CharField()

  • blog/templates/blog/post/search.html

    {% extends "blog/base.html" %}
    
    {% block title %}Search{% endblock %}
    
    {% block content %}
        {% if "query" in request.GET %}
            <h1>Posts containing "{{ cd.query }}"</h1>
            <h3>Found {{ total_results }} result{{ total_results|pluralize}}</h3>
            {% for result in results %}
                {% with post=result.object %}
                    <h4><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h4>
                    {{ post.body|truncatewords:5 }}
                {% endwith %}
            {% empty %}
                <p>There are no results for your query.</p>
            {% endfor %}
            <p><a href="{% url 'blog:post_search' %}">Search again</a></p>
        {% else %}
            <h1>Search for posts</h1>
            <form action="." method="get">
                {{ form.as_p }}
                <input type="submit" value="Search">
            </form>
        {% endif %}
    {% endblock %}

Вернуться на верх