У меня есть UserCreationForm в django, и он отлично работает с именем пользователя, адресом электронной почты, паролем и подтверждением пароля , но когда я расширил форму для пола, как и для электронной почты , это не сохраняются данные, поступающие из раскрывающегося списка в БД, и они не отображаются в области администрирования.
forms.py:
from django.contrib.auth import login, authenticate
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms
GENDER = (
(None, 'Choose your gender'),
('male', 'male'),
('female', 'female'),
('custom', 'custom'),
('Prefer Not To Say', 'Prefer Not To Say'),
)
class RegisterForm(UserCreationForm):
email = forms.EmailField()
gender = forms.ChoiceField(choices=GENDER)
class Meta(UserCreationForm.Meta):
model = User
fields = UserCreationForm.Meta.fields + ("username", "email","gender", "password1", "password2")
views.py:
from django.shortcuts import render, redirect
from django.http import HttpResponse
from .forms import RegisterForm
from django.contrib.auth.models import User
# Create your views here.
def register(request):
a = request.POST
a = dict(a)
print(a)
if request.method == "POST":
form = RegisterForm(request.POST)
if form.is_valid():
form.save()
else:
form = RegisterForm()
return render(request,'register.html',{'form':form})
регистр. html:
{% extends 'base.html' %}
{{% block title %} Register
{% endblock title %}}
{% load crispy_forms_tags %}
{% block body %}
<form method="POST" class="form-group container">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="btn btn-success">Register</button>
</form>
{% endblock body %}
Вывод:
Веб-страница:
Admin Page:
PgAdmin:
введите описание изображения здесь
Может ли кто-нибудь посоветовать мне добавить gender
раскрывающийся список в базе данных, а также в области администратора?
Примечание: Я не использую models.py
Я уже пробовал makemigrations и migrate