Как добавить поле выбора в UserCreationForm
Я пытаюсь спросить (с помощью forms.Select возможно), является ли пользователь корейским студентом или иностранным студентом, когда пользователь регистрируется. Я пробовал другие ответы на подобные вопросы, но они не сработали. Возможно, это из-за определения класса User. Как мне его добавить?
Вот как определен мой User класс:
from .models import User
Choices = (('I', "International"), ('K', "Korean"))
User.add_to_class('scheduleData',models.ManyToManyField(UserSelect, blank=True))
User.add_to_class('lang',models.CharField(max_length=2, default="EN"))
User.add_to_class('you_are',models.CharField(max_length=1, choices=Choices, default=False))
Вот как определяется мой NewUserForm:
(На странице отображается "You are:" без ничего с правой стороны)
class NewUserForm(UserCreationForm):
Choices = (('I', "International"), ('K', "Korean"))
widgets = {"you_are": forms.CharField(widget=forms.Select(choices=Choices), max_length=2)}
class Meta:
model = User
fields = ("username", "password1", "password2", "you_are")
def save(self, commit=True):
user = super(NewUserForm, self).save(commit=False)
if commit:
if user.you_are == "K":
user.lang = "KR"
user.save()
return user
Заранее спасибо.
не используйте модель пользователя напрямую, используйте абстрактную модель пользователя, тогда вы сможете расширять модель пользователя как угодно
class User(AbstractUser):
Choices = (('I', "International"), ('K', "Korean"))
lang = models.CharField(max_length=1, choices=Choices, default="I"))