почему бы не сохранить пароль в моей базе данных Django - PullRequest
0 голосов
/ 15 декабря 2018

Я работаю с Django.

Я использую AbstractBaseUser для создания пользователя в моделях.Я создаю форму для моих моделей.мои формы не сохраняют пароль в моей базе данных

Формы:

from django import forms
from django.contrib.auth import get_user_model

class Register(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput)
    password2 = forms.CharField(label='Confirm password', widget=forms.PasswordInput)



    class Meta:
        User = get_user_model()
        model = User
        fields = ('username', 'number' , 'country' , 'city' , 'email')

    def clean_username(self):
        User = get_user_model()
        username = self.cleaned_data.get('username')
        qs = User.objects.filter(username=username)
        if qs.exists():
            raise forms.ValidationError("username is taken")
        return username

    def clean_password2(self):
        # Check that the two password entries match
        password1 = self.cleaned_data.get("password")
        password2 = self.cleaned_data.get("password2")
        if password1 and password2 and password1 != password2:
            raise forms.ValidationError("Passwords don't match")
        return password2


class UserAdminCreationForm(forms.ModelForm):
    """A form for creating new users. Includes all the required
    fields, plus a repeated password."""
    password = forms.CharField(label='Password', widget=forms.PasswordInput)
    password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput)

    class Meta:
        User = get_user_model()
        model = User
        fields = ('username', 'number' , 'country' , 'city' , 'email')

    def clean_password2(self):
        # Check that the two password entries match  
        password1 = self.cleaned_data.get("password")
        password2 = self.cleaned_data.get("password2")
        if password1 and password2 and password1 != password2:
            raise forms.ValidationError("Passwords don't match")
        return password2

    def save(self, commit=True):
        # Save the provided password in hashed format
        user = super(UserAdminCreationForm , self).save(commit=False)
        user.set_password(self.cleaned_data["password"])
        if commit:
            user.save()
        return user

Просмотры:

@csrf_exempt
def Home(request):
    if request.method == 'POST':
        form = Register(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponse("greate")
    else:
        form = Register()
        return render_to_response('home.html' , {'form' : form})

это сохраняет адрес электронной почты и имя пользователя и номер, а также страну и город вмоя база данных, но не сохранять пароль

пожалуйста, помогите мне сохранить пароль в моей базе данных

...