我的注册表单不适用于django python
我的应用程序有问题,注册没有在后端创建配置文件。 我曾尝试使用django表单,但我不喜欢它们的渲染方式,所以我想使用自定义表单,但一旦我单击“提交”按钮,什么都没有发生,我检查后端没有配置文件我的注册表单不适用于django python,python,django,Python,Django,我的应用程序有问题,注册没有在后端创建配置文件。 我曾尝试使用django表单,但我不喜欢它们的渲染方式,所以我想使用自定义表单,但一旦我单击“提交”按钮,什么都没有发生,我检查后端没有配置文件 我的forms.py文件如下所示 from django.forms import ModelForm from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib
- 我的forms.py文件如下所示
from django.forms import ModelForm from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User from .models import Gig class GigForm(ModelForm): class Meta: model = Gig fields = ['title','category','description', 'price', 'photo', 'status'] class SignUpForm(forms.ModelForm): first_name = forms.CharField(max_length=30, required=False, help_text='Optional.') last_name = forms.CharField(max_length=30, required=False, help_text='Optional.') email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.') class Meta: model = User fields = ('username', 'first_name', 'last_name', 'email', 'password' )
- Models.py文件,如下所示
- signup.html如下所示
from django.forms import ModelForm from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User from .models import Gig class GigForm(ModelForm): class Meta: model = Gig fields = ['title','category','description', 'price', 'photo', 'status'] class SignUpForm(forms.ModelForm): first_name = forms.CharField(max_length=30, required=False, help_text='Optional.') last_name = forms.CharField(max_length=30, required=False, help_text='Optional.') email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.') class Meta: model = User fields = ('username', 'first_name', 'last_name', 'email', 'password' )
{%csrf_令牌%} 注册
提交 - Views.py看起来像这样
from django.forms import ModelForm from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User from .models import Gig class GigForm(ModelForm): class Meta: model = Gig fields = ['title','category','description', 'price', 'photo', 'status'] class SignUpForm(forms.ModelForm): first_name = forms.CharField(max_length=30, required=False, help_text='Optional.') last_name = forms.CharField(max_length=30, required=False, help_text='Optional.') email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.') class Meta: model = User fields = ('username', 'first_name', 'last_name', 'email', 'password' )
def注册(请求): 如果request.method==“POST”: 表单=注册表单(request.POST) 如果form.is_有效(): form.save() user.refresh_from_db() username=form.cleaned\u data.get('username')) user.save() 原始密码=form.cleaned\u data.get('password1') 用户=验证(用户名=user.username,密码=原始密码) 登录(请求、用户) 返回重定向('home.html') 其他: 表单=注册表单() 返回呈现(请求'signup.html',{'form':form})
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.CharField(max_length=500)
about = models.CharField(max_length=500)
location = models.CharField(max_length=30, blank=True)
def __str__(self):
return self.user.username
您是否忘记在表单中创建这些字段。py
首先,您应该始终在模板中显示表单错误(例如,
{{form.non_field{u errors}}
和{{form.name.errors}}
),因此,如果表单无效,您将看到错误。其次,onsubmit=return(validate())
应该做什么?函数validate()
在哪里定义?第三,您在浏览器调试工具中看到了什么?在“网络”选项卡中?有任何提交到服务器的请求吗?我可以看到您没有指定按钮type=“submit”why not?。您应该以各种方式指定。@dirkgroten我以为它是通过onsubmit=return(validate())实现的,但事实并非如此。那只是一个js脚本。没有提交。@Mateo,我已经添加了它,什么也没有。。你也可以添加Gig模型吗?这不是问题所在。