할당 전에 참조 된 / blog / search / 지역 변수 'cd'의 UnboundLocalError

조 린

solr로 django-haystack을 설정하려고하지만 계속 오류가 발생합니다.

할당 전에 참조 된 / blog / search / 지역 변수 'cd'의 UnboundLocalError

내 생각에

views.py

뭔가 잘못,,,. 내 앱 이름은 "blog"이고 이미 여러 블로그가 있습니다.여기에 이미지 설명 입력

핵심 블로그를 추가하면 8 개의 문서가 표시됩니다.

여기에 이미지 설명 입력

여기, 내 것이요

settings.py

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'e8m%vu0d&_0o-u*0@^*oh-2k4+j8_$c@qdj@)p353s%5p)2bx^'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []

SITE_ID = 1

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'taggit',
    'django.contrib.sites',
    'django.contrib.sitemaps',
    'haystack',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

ROOT_URLCONF = 'mysite.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'mysite.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}


# Internationalization
# https://docs.djangoproject.com/en/1.8/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/

STATIC_URL = '/static/'



HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://127.0.0.1:8983/solr/blog'
    },
}

schema.xml에 스키마를 넣었습니다.

여기에 이미지 설명 입력

나의

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()

내 (여기에 뭔가 잘못 추측 ??)

views.py

from django.shortcuts import render, get_object_or_404
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.views.generic import ListView
from django.core.mail import send_mail
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()
            # count total results
            total_results = results.count()
    return render(request, 'blog/post/search.html', {'form': form,
                                                     'cd': cd,
                                                     'results': results,
                                                     'total_results': total_results})

나의

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 %}

urls.py

from django.conf.urls import url
from . import views
from .feeds import LatestPostsFeed


urlpatterns = [
        .....
        url(r'^search/$', views.post_search, name='post_search'),
]

블로그 / 검색을 클릭하면 오류 만 표시됩니다.

여기에 이미지 설명 입력

에러 메시지

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/blog/search/

Django Version: 1.8.8
Python Version: 3.4.4
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'blog',
 'taggit',
 'django.contrib.sites',
 'django.contrib.sitemaps',
 'haystack')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/korekyourin/books/djexample/mysite/blog/views.py" in post_search
  112.                                                      'cd': cd,

Exception Type: UnboundLocalError at /blog/search/
Exception Value: local variable 'cd' referenced before assignment
안드레 마차도

당신의에서 post_search보기 당신은 정의하고 cd만 경우 form.is_valid().

GET 요청에 query변수 가 포함되어 있지 않으면 변수가 없기 cd때문에 오류가 발생합니다.

return render()is_valid () 조건부 로 들여 쓰기를 시도하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

할당 전에 참조 된 UnboundLocalError 지역 변수 'context'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'settingsText'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'response'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'turn'-Python

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'req'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'event'(PYGAME)

분류에서Dev

Python3 UnboundLocalError : 할당 전에 참조 된 지역 변수

분류에서Dev

'UnboundLocalError : 할당 전에 참조 된 지역 변수'command ''

분류에서Dev

또 다른 UnboundLocalError : 할당 전에 참조 된 지역 변수

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'mp'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'slcount'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'cur'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'cur'

분류에서Dev

UnBoundLocalError : 할당 전에 참조 된 지역 변수 (Python)

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'word_list'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'Score'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'key'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'opTuple'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'cars'

분류에서Dev

Python 오류-UnboundLocalError : 할당 전에 참조 된 지역 변수

분류에서Dev

UnboundLocalError : Flask 앱 할당 전에 참조 된 지역 변수 'restaurantToDelete'

분류에서Dev

While-loop : UnboundLocalError : 할당 전에 참조 된 지역 변수

분류에서Dev

'UnboundLocalError : 할당 전에 참조 된 지역 변수'lower '

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'class_name'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'readlgt'

분류에서Dev

UnboundLocalError : 할당 전에 참조 된 지역 변수 'username'

분류에서Dev

전역 var가 지역이 됨 --UnboundLocalError : 할당 전에 참조 된 지역 변수

분류에서Dev

Python : 변수와 클래스의 이름이 같은 경우 : UnboundLocalError : 할당 전에 참조 된 지역 변수 'foo'

분류에서Dev

재귀 합계 함수 ( "UnboundLocalError : 할당 전에 참조 된 지역 변수")

Related 관련 기사

  1. 1

    할당 전에 참조 된 UnboundLocalError 지역 변수 'context'

  2. 2

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'settingsText'

  3. 3

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'response'

  4. 4

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'turn'-Python

  5. 5

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'req'

  6. 6

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'event'(PYGAME)

  7. 7

    Python3 UnboundLocalError : 할당 전에 참조 된 지역 변수

  8. 8

    'UnboundLocalError : 할당 전에 참조 된 지역 변수'command ''

  9. 9

    또 다른 UnboundLocalError : 할당 전에 참조 된 지역 변수

  10. 10

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'mp'

  11. 11

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'slcount'

  12. 12

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'cur'

  13. 13

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'cur'

  14. 14

    UnBoundLocalError : 할당 전에 참조 된 지역 변수 (Python)

  15. 15

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'word_list'

  16. 16

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'Score'

  17. 17

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'key'

  18. 18

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'opTuple'

  19. 19

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'cars'

  20. 20

    Python 오류-UnboundLocalError : 할당 전에 참조 된 지역 변수

  21. 21

    UnboundLocalError : Flask 앱 할당 전에 참조 된 지역 변수 'restaurantToDelete'

  22. 22

    While-loop : UnboundLocalError : 할당 전에 참조 된 지역 변수

  23. 23

    'UnboundLocalError : 할당 전에 참조 된 지역 변수'lower '

  24. 24

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'class_name'

  25. 25

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'readlgt'

  26. 26

    UnboundLocalError : 할당 전에 참조 된 지역 변수 'username'

  27. 27

    전역 var가 지역이 됨 --UnboundLocalError : 할당 전에 참조 된 지역 변수

  28. 28

    Python : 변수와 클래스의 이름이 같은 경우 : UnboundLocalError : 할당 전에 참조 된 지역 변수 'foo'

  29. 29

    재귀 합계 함수 ( "UnboundLocalError : 할당 전에 참조 된 지역 변수")

뜨겁다태그

보관