【发布时间】:2018-05-24 16:04:37
【问题描述】:
我有一个自定义用户模型,我需要添加一个额外的字段。我遇到的问题是所需的信息是来自注册页面的用户输入。 这是表单中的代码:
team = forms.ChoiceField(choices=teamChoices)
这是我的用户模型:
class User(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
我需要添加如下内容:
groups = 'team'
但我不知道如何将这些信息传递给我的模型。我的用户模型在 models.py 中,我的注册表在 forms.py 中。
这是我目前的注册表,但我还没有测试它是否有效:
class RegisterForm(UserCreationForm):
first_name = forms.CharField(max_length=30,widget=forms.TextInput(attrs={'placeholder':'First Name', 'class': 'form-input'}))
last_name = forms.CharField(max_length=30,widget=forms.TextInput(attrs={'placeholder':'Last Name', 'class': 'form-input'}))
email = forms.EmailField(max_length=254, widget=forms.TextInput(attrs={'placeholder':'Email', 'class': 'form-input'}))
teamChoices = (('red','red'),('green','green'),('blue','blue'),('orange','orange'))
team = forms.ChoiceField(choices=teamChoices)
class Meta:
model = User
fields = ('first_name','last_name','email','team','password1','password2')
【问题讨论】:
-
完全不清楚你在问什么。为什么你认为你需要把它放在类定义中?你肯定需要一个字段,比如
email,你在创建用户时设置的? -
@DanielRoseman 我已经设置了电子邮件字段。我在问如何将注册表单中的输入传递给模型?假设我有一个价值团队,可以是红色、绿色、蓝色、黄色、橙色,用户可以使用下拉菜单选择其中任何一个,我通过 method = post 在表单中获取值。如何将这些值传递给我的用户模型?
-
我需要该值进行身份验证。
-
您的操作方式与所有其他字段完全相同。你是怎么设置邮箱的?这样做。
-
@DanielRoseman 但是如何从我的注册表单中检索该值?