Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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/7/elixir/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
我的注册表单不适用于django python_Python_Django - Fatal编程技术网

我的注册表单不适用于django python

我的注册表单不适用于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

我的应用程序有问题,注册没有在后端创建配置文件。 我曾尝试使用django表单,但我不喜欢它们的渲染方式,所以我想使用自定义表单,但一旦我单击“提交”按钮,什么都没有发生,我检查后端没有配置文件

  • 我的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模型吗?这不是问题所在。