Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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/2/django/22.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登录未获取所有字段_Python_Django_Forms_Login_Field - Fatal编程技术网

Python Django登录未获取所有字段

Python Django登录未获取所有字段,python,django,forms,login,field,Python,Django,Forms,Login,Field,我已经做了一个自定义的用户表单,它可以注册和处理所有的事情。但是当我尝试登录时,我的用户没有自定义表单中的任何属性。让我告诉你: models.py class RegisterUser(models.Model): user=models.OneToOneField(User,on_delete=models.CASCADE) biography = models.CharField(max_length=1000000,blank=True) research_pl

我已经做了一个自定义的用户表单,它可以注册和处理所有的事情。但是当我尝试登录时,我的用户没有自定义表单中的任何属性。让我告诉你: models.py

class RegisterUser(models.Model):
    user=models.OneToOneField(User,on_delete=models.CASCADE)

    biography = models.CharField(max_length=1000000,blank=True)
    research_place = models.CharField(max_length=1000000,blank=True)
    studies = models.CharField(max_length=1000000,blank=True)
forms.py

class RegistrationForm(UserCreationForm):

    fname = forms.CharField(max_length=256, label="", required=True, widget=forms.TextInput(attrs={'class': 'form-control','placeholder': 'First Name','required':True}))
    lname = forms.CharField(max_length=256, label="", required=True, widget=forms.TextInput(attrs={'class': 'form-control','placeholder': 'Last Name','required':True}))
    email = forms.EmailField(max_length=256, label="Email", required=True, widget=forms.EmailInput(attrs={'class': 'form-control','placeholder': 'Email','required':True, 'type':'email'}))
    emailConfirm = forms.EmailField(max_length=256, label="", required=True, widget=forms.EmailInput(attrs={'class': 'form-control','placeholder': 'Confirm Email','required':True, 'type':'email'}))
    password1 = forms.CharField(max_length=256, label="", required=True, widget=forms.PasswordInput(attrs={'class': 'form-control','placeholder': 'Password','required':True}))
    password2 =forms.CharField(required=False)

    biography = forms.CharField(label = "Biography",required=False)
    research_place = forms.CharField(label="Research Place",required=False)
    studies = forms.CharField(label="Studies",required=False)

    # class Meta(UserCreationForm.Meta): #extra bit of info
    #   model = user
    #   fields = ('email','emailConfirm','password1','biography','research_place','studies')
    class Meta(): #extra bit of info
        model = User
        fields = ('email','emailConfirm','password1','biography','research_place','studies')
    def clean_username(self):
        username = self.cleaned_data["username"]
        try:
            user.objects.get(username=username)
        except user.DoesNotExist:
            return username
        raise forms.ValidationError(self.error_messages['duplicate_username'])  

    def save(self,commit=True):
        user = super(RegistrationForm,self).save()
        user.first_name=self.cleaned_data['fname']
        user.last_name=self.cleaned_data['lname']
        # user.set_password(self.cleaned_data['password1'])
        user.username = self.cleaned_data['email']
        user.save()

        r_user = RegisterUser(user=user,biography="default1", research_place="default2", studies="default3")
        if commit:
            r_user.save()
            # print ('saving user: %s' % self.user)
        return r_user
最后是登录视图:

email=request.POST.get('email','')
password = request.POST.get('password','')
user = authenticate(username=email,password=password)

print(email)
print(password)
print(user)
if user is not None:
    print("notNone")
    login(request,user)
    return HttpResponseRedirect("out")

但是如果我在模板中执行{{user.liography}},则不会显示任何内容。has_attr还显示用户没有传记属性。有人知道发生了什么吗?

传记字段位于
注册表用户
模型上,而不是
用户
模型上。因此,您必须执行
{{user.registeruser.liography}}
而不是
{{user.liography}