【发布时间】:2018-03-10 23:16:46
【问题描述】:
我一直在尝试使用 django 中的扩展用户模型创建自定义注册表单。我一直在尝试添加的自定义字段之一是用户类型,它只能是“员工”或“管理员”。
我的 signUpForm 类看起来像这样
from .models import EMPLOYEE_TYPE_CHOICES
class SignUpForm(UserCreationForm):
usertype = forms.CharField(
max_length=10,
choices=EMPLOYEE_TYPE_CHOICES,
)
userID = forms.CharField(label="User ID")
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', 'userID', 'usertype')
EMPLOYEE_TYPE_CHOICES 来自我的 models.py,看起来像这样
EMPLOYEE_TYPE_CHOICES = (
('admin', 'Admin'),
('employee', 'Employee'),
)
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
ADMIN = 'Admin'
EMPLOYEE = 'Employee'
EMPLOYEE_TYPE_CHOICES = (
(ADMIN, 'Admin'),
(EMPLOYEE, 'Employee'),
)
usertype = models.CharField(
max_length=10,
choices=EMPLOYEE_TYPE_CHOICES,
)
userID = models.CharField(
max_length=10,
)
运行服务器时,我收到错误 TypeError: init() 得到了一个意外的关键字参数 'choices'
是否有其他方法可以将选项添加到我的表单域?
【问题讨论】:
标签: django django-forms