0

我想构建一个自定义搜索表单。下面是我的代码。我的应用程序称为“查看器”。我不断收到“/viewer/search/...name 'CustomSearchForm' 处的 NameError 未定义”。请帮忙。我知道这是某个地方的简单错误。

从查看器/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')
)

从查看器/forms.py:

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

class CustomSearchForm(ModelSearchForm):
    ...
4

2 回答 2

1

这是我找到的解决方案,使用不同的方法:

网址.py:

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

视图.py:

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

在查看器/search.html 中:

{% extends 'base.html' %}

{% block content %}
<form type="get" action=".">
    {{form}}
    <button type="submit">Search</button>
</form>
{% endblock %} 
于 2014-01-09T15:34:04.500 回答
0

Had the same problem but with "NameError at /viewer/search/...name 'SearchForm' is not defined" trying to follow the guide here: http://django-haystack.readthedocs.io/en/v2.6.0/views_and_forms.html

Just upgrading to Django 1.11.0 did the trick for me. Maybe it would work for you too.

于 2017-05-01T20:56:05.000 回答