Django: Как добавить раскрывающийся список в UserCreationForm? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть 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 %}

Вывод:

Веб-страница: enter image description here

Admin Page: enter image description here

PgAdmin: введите описание изображения здесь

Может ли кто-нибудь посоветовать мне добавить gender раскрывающийся список в базе данных, а также в области администратора?

Примечание: Я не использую models.py

Я уже пробовал makemigrations и migrate

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