Здравствуйте. У меня есть форма регистрации, но почему-то она не работает.
Вот сам код:
HTML:
{% extends 'WebPortfolioApp/base.html' %}
{% block content %}
<div class="mask d-flex align-items-center h-100 gradient-custom-3">
<div class="container h-100">
<div class="row d-flex justify-content-center align-items-center h-100">
<div class="col-12 col-md-9 col-lg-7 col-xl-6">
<div class="card" style="border-radius: 15px;">
<div class="card-body p-5">
<h2 class="text-uppercase text-center mb-5">Create an account</h2>
<form method="post">
{% csrf_token%}
{% for f in form %}
<input id="{{ f.id_for_label }}" placeholder="{{ f.label }}" class="form-control form-control-lg" />
<label class="form-label" for="{{ f.id_for_label }}"></label>
{% endfor %}
<button type="submit" class="btn btn-success btn-block btn-lg gradient-custom-4 text-body"></button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
forms.py:
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms
class RegisterUserForm(UserCreationForm):
username = forms.CharField(label='Login', widget=forms.TextInput(attrs={'class': 'form-input'}))
email = forms.EmailField(label='Email', widget=forms.EmailInput(attrs={'class': 'form-input'}))
password1 = forms.CharField(label='Password', widget=forms.PasswordInput(attrs={'class': 'form-input'}))
password2 = forms.CharField(label='Password again', widget=forms.PasswordInput(attrs={'class': 'form-input'}))
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2')
views.py :
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
from django.contrib.auth.views import LoginView
from django.shortcuts import render
from django.urls import reverse_lazy
from django.views.generic import ListView, DetailView, CreateView
from .forms import RegisterUserForm
from .models import PortfolioStructure
class RegisterUser(CreateView):
form_class = RegisterUserForm
template_name = 'WebPortfolioApp/register_popup.html'
success_url = reverse_lazy('login')
urls.py:
from django.urls import path
from django.conf import settings
from .views import RegisterUser
urlpatterns = [
path('register/', RegisterUser.as_view(), name='register'),
]
И так по конкретнее о самом вопросе. Когда добавляю форму Bootstrap, и просто внутрь этой формы добавляю лейбл в цикле то все ок все работает. Но мне такой способ не подходит так как мне надо еще и инпуты застелизовать. И когда я уже добавляю инпуты вот тогда и начинается нервотрепка. Плейсхолдеры через цикл определяются и берутся из forms.py корректно но вот как я понимаю тип ввода не определяетя. Я так понимаю нужно что-то в type="" передать, но при передаче type="{{ f.label }}" начинают работать только первое и предпоследнее поле а все остальное также не работает. Что можно с этим сделать?