#django
#django
Вопрос:
у меня вопрос, как я могу добавить поле выбора в класс UserCreationForm. я пытался добавить, но проблема в том, что «слишком много значений для распаковки (ожидается 2)», я не знаю почему. у меня есть приведенный ниже код. Спасибо за помощь
мой model.py
class Viewer(models.Model):
INTERESTS_CHOICES = (
('IT', 'IT'),
('MARKETING', 'marketing'),
('BUISINESS', 'buisiness'),
('DESIGN', 'design'),
)
user = models.OneToOneField(User, on_delete=models.CASCADE)
interests = models.CharField(choices=INTERESTS_CHOICES, max_length=8, default='IT')
def __str__(self):
return self.user.username
мой forms.py
INTERESTS_CHOICES = (
('IT', 'IT'),
('MARKETING', 'marketing'),
('BUISINESS', 'buisiness'),
('DESIGN', 'design'),
)
class ViewerRegisterForm(UserCreationForm):
email = forms.EmailField(required=False)
interests = forms.ChoiceField(choices=[INTERESTS_CHOICES])
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
@transaction.atomic
def save(self):
user = super().save(commit=False)
user.is_viewer = True
user.save()
viewer = Viewer.objects.create(user=user)
return user
Ответ №1:
попробуйте убрать скобки списка рядом с вариантами выбора, и, может forms.Select
быть, это сработает лучше?
class ViewerRegisterForm(UserCreationForm):
fields = ['username', 'interests', 'email', 'password1', 'password2']
widgets = {
interests = forms.Select(choices=INTERESTS_CHOICES)}