Невозможно загрузить пользовательскую форму Haystack

Я хочу создать пользовательскую форму поиска. Ниже мой код. Мое приложение называется "зритель". Я продолжаю получать "NameError в /viewer/search/...name 'CustomSearchForm' не определено". Пожалуйста помоги. Я знаю, что это простая ошибка где-то.

От зрителя /urls.py:

from django.conf.urls import *

from viewer import views, forms
from haystack.views import SearchView

urlpatterns = patterns('',
    #viewer urls
    ...
    url(r'^search/$', SearchView(form_class=CustomSearchForm), name='haystack_search')
)

Из viewer/forms.py:

from django import forms
from haystack.forms import ModelSearchForm
from haystack.query import SearchQuerySet

class CustomSearchForm(ModelSearchForm):
    ...

2 ответа

Решение

Вот решение, которое я нашел, используя другой подход:

urls.py:

url(r'^search/', 'viewer.views.search'),

views.py:

def search(request):
    from .forms import CustomSearchForm
    form = CustomSearchForm(request.GET)
    searchresults = form.search()
    return render(request, 'viewer/search.html', {'form' : form})

в viewer/search.html:

{% extends 'base.html' %}

{% block content %}
<form type="get" action=".">
    {{form}}
    <button type="submit">Search</button>
</form>
{% endblock %} 

Была такая же проблема, но с "NameError at /viewer/search/...name" SearchForm "не определено", пытаясь следовать руководству здесь: http://django-haystack.readthedocs.io/en/v2.6.0/views_and_forms.html

Просто обновление до Django 1.11.0 помогло мне. Может быть, это будет работать для вас тоже.

Другие вопросы по тегам