CrispyError : as_crispy_field передано недопустимое или несуществующее поле только для поля email
Я не могу выставить поле Email из модели User в django, если я удалю поле email из register.html, то ошибки не будет. Также если я использую {{ form }} Она не показывает поле электронной почты. Он показывает имя пользователя, пароль1 и пароль2 без ошибки.
models.py:
from django.contrib.auth.models import User
class Profile(models.Model):
profile_pic = models.ImageField(null=True, blank=True, default='default.jpg')
# FK
user = models.ForeignKey(User, max_length=10, on_delete=models.CASCADE, null=True)
forms.py:
from django.contrib.auth.models import User
class CreateUserForm(UserCreationForm):
class Meta:
model = User
fields= ['username','email', 'password1', 'password2']
views.py: from .forms import UserCreationForm
def register(request):
form = UserCreationForm()
if request.method == "POST":
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect("my-login")
context = {'form': form}
return render(request, "register.html", context=context)
register.html
{% load static %}
{% load crispy_forms_tags %}
.
.
.
<form action="" method="POST" autocomplete="off">
{% csrf_token %}
{{ form.username|as_crispy_field }}
# error is here
{{ form.email|as_crispy_field }}
{{ form.password1|as_crispy_field }}
{{ form.password2|as_crispy_field }}
<input type="submit" value="submit" />
</form>
Django 4.2.10
django-bootstrap4 24.1
django-crispy-forms 1.14.0
Подушка 10.2.0
Колесо 0.42.0
Решение: Это была моя ошибка при импорте.
в Views.py я должен импортировать
from . forms import CreateUserForm
но я импортировал:
from .forms import UserCreationForm