Python Django“视图未在第151行返回HttpResponse对象”
我在151号线上遇到了这个问题,我不知道发生了什么,我需要你的帮助。我认为错误在views.py上,但如果我在教程中键入相同的代码,我不知道错误在哪里 当我开始这个项目只为李森如何工作django,我读了教程,我在书中键入相同的代码请帮助我 这是我在django上的代码 forms.pyPython 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):
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行?能告诉我们错误是什么吗?最好是你已经尝试和研究过的