Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django“视图未在第151行返回HttpResponse对象”_Python_Django - Fatal编程技术网

Python Django“视图未在第151行返回HttpResponse对象”

Python Django“视图未在第151行返回HttpResponse对象”,python,django,Python,Django,我在151号线上遇到了这个问题,我不知道发生了什么,我需要你的帮助。我认为错误在views.py上,但如果我在教程中键入相同的代码,我不知道错误在哪里 当我开始这个项目只为李森如何工作django,我读了教程,我在书中键入相同的代码请帮助我 这是我在django上的代码 forms.py from django import forms from django.contrib.auth.models import User class RegistroUserForm(forms.Form):

我在151号线上遇到了这个问题,我不知道发生了什么,我需要你的帮助。我认为错误在views.py上,但如果我在教程中键入相同的代码,我不知道错误在哪里

当我开始这个项目只为李森如何工作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

我是django的初学者,请帮助我

表单无效的情况不被处理。你能试试这个吗,我已经把最后两行移出了else区

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)

哪一行是151行?能告诉我们错误是什么吗?最好是你已经尝试和研究过的