2016-07-06 10 views
-4

私はこの問題を151行でHttpResponseに持っています。何が起こったのか分かりません。私はあなたの助けが必要です。私はviews.pyにエラーがあると思うが、チュートリアルブックに同じコードを入力すればどこでエラーが発生するのかわからない。Django "ビューは、151行目のHttpResponseオブジェクトを返さなかった"

私はこのプロジェクトをlisenのために始めます。どのようにdjangoの仕事をするのですか、私はチュートリアルを読んで、同じコードをブックの中に入力してください。

これはdjangoのコードです。

forms.py

from django import forms 
from django.contrib.auth.models import User 

class RegistroUserForm(forms.Form): 
    username = forms.CharField(min_length=5,widget=forms.TextInput(attrs={'class':'form-control'})) 
    email = forms.EmailField(widget=forms.EmailInput(attrs={'class':'form-control'})) 
    password = forms.CharField(min_length=5, widget=forms.PasswordInput(attrs={'class':'form-control'})) 
    password2 = forms.CharField(widget = forms.PasswordInput(attrs={'class':'form-control'})) 
    photo = forms.ImageField(required=False) 

def clean_username(self): 
    username = self.cleaned_data['username'] 
    if User.objects.filter(username = username): 
     raise forms.ValidationError("Nombre de usuario ya registrado!") 
    return username 

def clean_email(self): 
    email = self.cleaned_data['email'] 
    if User.objects.filter(email = email): 
     raise forms.ValidationError("Ya existe un email Igual en la db!") 
    return email 

def clean_password2(self): 
    password = self.cleaned_data['password'] 
    password2 = self.cleaned_data['password2'] 
    if password != password2: 
     raise forms.ValidationError("Las contraseñas no coinciden") 
    return password2 

views.py

from django.shortcuts import render 
from django.contrib.auth.models import User 
from django.shortcuts import redirect 
from django.core.urlresolvers import reverse 
from .forms import RegistroUserForm 
from .models import UserProfile 

def registro_usuario_view(request): 
    if request.method == 'POST': 
     form = RegistroUserForm(request.POST,request.FILES) 
     if form.is_valid(): 
      cleaned_data = form.cleaned_data #cleaned_data obtiene los datos limpios y los pone en un diccionario 
     # con pares clave/valor , donde la clave es el nombre del campo cleaned_data.get("username") "ejemplo" 
     #y el formulario es el ya ingresado 
      username = cleaned_data.get("username") 
      password = cleaned_data.get("password") 
      email = cleaned_data.get("email") 
      photo = cleaned_data.get("photo") 
      user_model = User.objects.create_user(username=username,password=password) 
      user_model.email = email 
      user_model.save() 
      user_profile = UserProfile() 
      user_profile.user = user_model 
      user_profile.photo = photo 
      user_profile.save() 
      return redirect(reverse('accounts.gracias',kwargs={'username':username})) 

    else: 
     form = RegistroUserForm() 
     context = { 
    'form': form 
    } 
     return render(request, 'accounts/registro.html', context) 

def gracias_view(request, username): 
    return render(request, "accounts/gracias.html", {'username':username}) 

models.py

from django.db import models 
from django.conf import settings 

class UserProfile(models.Model): 
    user = models.OneToOneField(settings.AUTH_USER_MODEL) 
    photo = models.ImageField(upload_to="profiles", blank=True,null=True) 

    def __str__(self): 
     return self.user.username 

私はジャンゴの初心者ですとき

+1

「ライン151」は、どのラインですか? – raphv

+0

エラーが何であるか教えてください。あなたがこれまでに試して研究したもの – Sayse

答えて

1

に条件を助けてくださいフォームが無効です処理されません。これを試すことができます、私は最後の2行を他のブロックから移動しました。

def registro_usuario_view(request): 
    if request.method == 'POST': 
     form = RegistroUserForm(request.POST,request.FILES) 
     if form.is_valid(): 
      cleaned_data = form.cleaned_data #cleaned_data obtiene los datos limpios y los pone en un diccionario 
     # con pares clave/valor , donde la clave es el nombre del campo cleaned_data.get("username") "ejemplo" 
     #y el formulario es el ya ingresado 
      username = cleaned_data.get("username") 
      password = cleaned_data.get("password") 
      email = cleaned_data.get("email") 
      photo = cleaned_data.get("photo") 
      user_model = User.objects.create_user(username=username,password=password) 
      user_model.email = email 
      user_model.save() 
      user_profile = UserProfile() 
      user_profile.user = user_model 
      user_profile.photo = photo 
      user_profile.save() 
      return redirect(reverse('accounts.gracias',kwargs={'username':username})) 

    else: 
     form = RegistroUserForm() 
    context = { 
    'form': form 
    } 
    return render(request, 'accounts/registro.html', context) 
関連する問題