2012-09-13 5 views
-1

을 반환하지 않았으므로 URLs.py에 다음 코드가 있습니다. Django 오류 - 내 응용 프로그램 폴더에 HttpResponse 객체

urlpatterns = patterns('', 
    (r'^login/$', 'django.contrib.auth.views.login'), 
    # (r'^catalog/$', home), 
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', 
     { 'document_root' : 'C:/SHIYAM/Personal/SuccessOwl/SOWL0.1/SOWL/SOWL/static'}), 
    # (r'^admin/', include('django.contrib.admin.urls')), 
    (r'^catalog/', include('CATALOG.urls')), 
    (r'^accounts/', include('registration.urls')), 
    (r'^$', main_page), 
) 

나는 "카탈로그"라는 별도의 응용 프로그램 (폴더)가 있으며 URLs.py 다음과 같은 코드가있다 : 카탈로그 폴더에서

urlpatterns = patterns('SOWL.catalog.views', 
    (r'^$', 'index', { 'template_name':'catalog/index.html'}, 'catalog_home'), 
    (r'^category/(?P<category_slug>[-\w]+)/$', 'show_category', {'template_name':'catalog/category.html'},'catalog_category'), 
    (r'^product/(?P<product_slug>[-\w]+)/$', 'show_product', {'template_name':'catalog/product.html'},'catalog_product'), 
    (r'^enter_product/$',enter_product), 
) 

를, 내가 forms.py이

from django import forms 
from CATALOG.models import Product 

class ProductAdminForm(forms.ModelForm): 
    class Meta: 
     model = Product 

def clean_price(self): 
    if self.cleaned_data['price'] <= 0: 
     raise forms.ValidationError('Price must be greater than zero.') 
    return self.cleaned_data['price'] 

class Product_Form(forms.Form): 
    name = forms.CharField(label='name', max_length=30) 
    slug = forms.SlugField(label='Unique Name for the URL', max_length=30) 
    brand = forms.CharField(label='Unique Name for the URL', max_length=30) 
    price = forms.DecimalField(label='Price',max_digits=9,decimal_places=2) 
    old_price = forms.DecimalField(max_digits=9,decimal_places=2,initial=0.00) 
    quantity = forms.IntegerField() 
    description = forms.CharField() 
    meta_keywords = forms.CharField(max_length=255) 
    meta_description = forms.CharField(max_length=255) 
    categories = forms.CharField(max_length=255) 
    user = forms.IntegerField() 

    prepopulated_fields = {'slug' : ('name',)} 

및 views.py

from CATALOG.forms import * 
def enter_product(request): 
    if request.method == 'POST': 
     form = RegistrationForm(request.POST) 
     if form.is_valid(): 
      user = User.objects.create_user(
       username=form.clean_data['username'], 
       password=form.clean_data['password1'], 
       email=form.clean_data['email'] 
      ) 
      return HttpResponseRedirect('/') 
     else: 
      form = RegistrationForm() 
     variables = RequestContext(request, { 
      'form': form 
     }) 

     return render_to_response(
      'catalog/enter_product.html', 
      variables 
     ) 
{% extends "base.html" %} 
{% block title %}blah{% endblock %} 
{% block head %}blah{% endblock %} 
{% block content %} 
<form method="post" action="."> 
{{ form.as_p }} 
<input type="submit" value="Enter" /> 
</form> 
{% endblock %} 

하지만 localhost로 갈 때 : 8000/카탈로그/enter_product이 /가 말했다 :및 "\ 템플릿 \ 카탈로그"폴더에, 나는 다음과 같은 코드가 "enter_product.html"을 가지고

보기 CATALOG.views.enter_product가 HttpResponse 오브젝트를 리턴하지 않았습니다.

왜 그런가요? 당신의 도움을 주셔서 감사합니다.

  • 토론토

답변

0

귀하의 return render_to_response...if request.method == 'POST'의 내부에 들여 쓰기됩니다. 따라서 게시물이 아닌 경우 view 함수는 아무 것도 반환하지 않습니다. 귀하의 진술서를 한 단계 낮추십시오. CATALOG.forms에서

+0

가져 * DEF enter_product (요청) \t request.method가 == 'POST'경우 : \t \t 형태 = RegistrationForm (request.POST) \t \t) (form.is_valid 경우 : form.clean_data = [ '이름', \t \t \t \t \t 암호 = form.clean_ \t \t 사용자 = User.objects.create_user ( \t \t \t \t 자명 데이터 [ '가 password1'] \t \t \t \t 이메일 form.clean_data = [ '이메일'] \t \t \t) \t \t \t HttpResponseRedirect를 리턴 ('/') 다른 \t : \t \t 형태 RegistrationForm =() \t 변수 = RequestContext (요청 { \t \t \t '형태'형태 \t \t}) – user1666952

관련 문제