как упорядочить теги шаблона в django с шаблоном регистрации для модели пользователя по умолчанию, добавив дополнительные поля - PullRequest
0 голосов
/ 18 апреля 2020

Я начинающий для django. Когда я регистрирую детали, используя регистрационную форму, которая не сохраняется в базе данных. В основном для этого я использую модель пользователя по умолчанию для этого с тремя дополнительными полями, такими как имя, фамилия и пароль подтверждения . для этого в шаблоне регистрации, где я могу использовать теги шаблона.

Вот мой файл forms.py:

class UserRegisterForm(forms.ModelForm):
email = forms.EmailField(label='Email Field')
password = forms.CharField(widget=forms.PasswordInput)
password1 = forms.CharField(widget=forms.PasswordInput)
firstname = forms.CharField()
lastname = forms.CharField()

    class Meta:
       model = User
       fields = [
        'firstname',
        'lastname',
        'email',
        'password',
        'password1',
    ]

def  clean_password(self):
    password = self.cleaned_data.get('password')
    password2 = self.cleaned_data.get('password1')
    if password != password2:
        raise forms.ValidationError('passwords must match')
    return password

view.py для фрагмента кода регистрации

def register_view(request):
    next = request.GET.get('next')
    form = UserRegisterForm(request.POST or None)
    if form.is_valid():
      user = form.save()
      password = form.cleaned_data.get('password')
      user.set_password(password)
      user.save()
      new_user = authenticate(username=user.username, password=password)
      login(request, new_user)
      if next:
        return redirect(next)
    return redirect('/')
context = {
    'form': form,
}
return render(request, 'auth-register.html', context) 

шаблон для авторизации. html

 <form method="POST">{% csrf_token %}
              <div class="row">
                <div class="form-group col-6">
                  <label for="{{frist_name}}">First Name</label>
                  <input id="{{frist_name}}" type="text" class="form-control" name="frist_name" autofocus="">
                </div>
                <div class="form-group col-6">
                  <label for="{{last_name}}">Last Name</label>
                  <input id="{{last_name}}" type="text" class="form-control" name="last_name">
                </div>
              </div>
              <div class="form-group">
                <label for="{{email}}">Email</label>
                <input id="{{email}}" type="email" class="form-control" name="email">
                <div class="invalid-feedback">
                </div>
              </div>
              <div class="row">
                <div class="form-group col-6">
                  <label for="{{password}}" class="d-block">Password</label>
                  <input id="{{password}}" type="password" class="form-control pwstrength" data-indicator="pwindicator" name="password">
                  <div id="pwindicator" class="pwindicator">
                    <div class="bar"></div>
                    <div class="label"></div>
                  </div>
                </div>
                <div class="form-group col-6">
                  <label for="{{password1}}" class="d-block">Confirm Password</label>
                  <input id="{{password1}}" type="password" class="form-control" name="password-confirm">
                </div>
              </div>
              <div class="form-group">
                <div class="custom-control custom-checkbox">
                  <input type="checkbox" name="agree" class="custom-control-input" id="agree">
                  <label class="custom-control-label" for="agree">I agree with the terms and conditions</label>
                </div>
              </div>
              <div class="form-group">
                <button type="submit" class="btn btn-primary btn-lg btn-block">
                  Register
                </button>
              </div>
            </form>

где я могу использовать шаблон jinja2 на странице html.

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