Задать вопрос
@Diyar

Выдает ошибку но при обновлении страницы исчезает?

from django.shortcuts import render
from .forms import UserRegistrationForm

def register(request):
    if request.method == 'POST':
        user_form = UserRegistrationForm(request.POST)
        if user_form.is_valid():
            user_form.save()
            user_form.set_password(user_form.cleaned_data['password'])
            user_form.save()
            return render(request, 'account/register_done.html', {'user_form': user_form})

    else:
        user_form = UserRegistrationForm()
    return render(request, 'account/register.html', {'user_form': user_form})

from django import forms
from main.models import Courier
from django.contrib.auth.models import User

class UserRegistrationForm(forms.ModelForm):
    password = forms.CharField(label="Пароль", widget=forms.PasswordInput(attrs={'class': 'form-control','placeholder': '********' }))
    password2 = forms.CharField(label="Повторите пароль", widget=forms.PasswordInput(attrs={'class': 'form-control','placeholder': '********' }))
    username = forms.CharField(label="Логин", widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Логин'}))
    first_name = forms.CharField(label="Имя", widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Имя'}))
    last_name = forms.CharField(label="Фамилия", widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Фамилия'}))
    phone = forms.CharField(label="Номер телефона", widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Номер телефона'}))
    
    class Meta:
        model = User
        fields = ['username', 'password', 'password2', 'first_name', 'last_name', 'phone',]

    def clean_password2(self):
        cd = self.cleaned_data
        if cd['password'] != cd['password2']:
            raise forms.ValidationError('Неверный пароль')
        return cd['password2']

AttributeError at /accounts/register/
'UserRegistrationForm' object has no attribute 'set_password'
  • Вопрос задан
  • 32 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest
Работаю с Python/Django
В конкретно этом случае нужно использовать
if user_form.is_valid():
    user_instance  = user_form.save(commit=False)

И уже с user_instance работать.

Однако вопрос в том, зачем писать лишний код, когда использовать готовую UserCreationForm?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы