Поля формы регистрации не отображаются Django
Вот мой код
В Urls.py
from django.contrib.auth import authenticate, login, logout
from .forms import CustomUserCreationForm
def registeruser(request):
form = CustomUserCreationForm()
if request.method == "POST":
form = CustomUserCreationForm(request, POST)
if form.is_valid():
user = form.save(commit=False)
user.save()
user = authenticate(request, username=user.username, password=request.POST['password'])
if user is not None:
login(request, user)
return redirect('home')
context = {'form' : form}
return render(request, 'signup.html', context)
urlpatterns = [
path('signup/', registeruser, name='signup'),
]
В файле forms.py
from django.forms import ModelForm
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'password1', 'password2']
def __init__(self, *args, **kwargs):
super(CustomUserCreationForm, self).__init__(self, *args, **kwargs)
self.fields['username'].widget.attrs.update({'class' : 'form-control', 'placeholder' : 'Enter Username'})
self.fields['password1'].widget.attrs.update({'class' : 'form-control', 'placeholder' : 'Enter Password'})
self.fields['password2'].widget.attrs.update({'class' : 'form-control', 'placeholder' : 'Re-Enter Password'})
In Signup.html
<form class="text-left clearfix" method="POST">
{% csrf_token %}
{% for field in forms %}
<div class="form-group">
{{field}}
</div>
{% endfor %}
<div class="text-center">
<button type="submit" class="btn btn-main text-center">Sign UP</button>
</div>
</form>
Результатом является Изображение страницы регистрации Я перепробовал множество настроек, но на странице регистрации нет поля ввода. Просто ничего не отображается. Пожалуйста, помогите мне, что я делаю не так?
Вместо использования for loop
попробуйте просто использовать form
.
#view.py
return render(request, 'signup.html', {'form': form})
#signup
<form class="text-left clearfix" method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" class="btn btn-main text-center" value="Sign UP">
</form>