django-allauth 注册表单中用户中的外国模型
foreign model in User in django-allauth signup form
我正在使用 Django 1.8 和 django-allauth。我使用自定义用户模型。
我 link 用户模型到组,所以我创建我的自定义用户模型如下:
class MyUser(AbstractBaseUser):
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
)
group = models.ForeignKey(Group)
如您所见,组是创建新用户时的必填字段。
在注册表单中,我将默认值设置为组。
class SignupForm(forms.Form):
group = Group.objects.get(name='default')
def signup(self, request, user):
user.group = group
user.save()
但是当我尝试注册时它显示错误。这是错误:
IntegrityError at /accounts/signup/
(1048, "Column 'group_id' cannot be null")
Request Method: POST
Request URL: http://127.0.0.1:8000/accounts/signup/
Django Version: 1.8.3
Exception Type: IntegrityError
Exception Value:
(1048, "Column 'group_id' cannot be null")
所以我的问题是如何在注册期间将必填字段 "group" 保存给新用户,因为组是我的用户模型中的必填字段。
最终我所做的是在模型中的 Group 字段中添加了一个默认值。当用户注册时,它会自动分配到默认组。
group = models.ForeignKey(Group, default='2') # id = '2' which is my default group.
我正在使用 Django 1.8 和 django-allauth。我使用自定义用户模型。 我 link 用户模型到组,所以我创建我的自定义用户模型如下:
class MyUser(AbstractBaseUser):
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
)
group = models.ForeignKey(Group)
如您所见,组是创建新用户时的必填字段。
在注册表单中,我将默认值设置为组。
class SignupForm(forms.Form):
group = Group.objects.get(name='default')
def signup(self, request, user):
user.group = group
user.save()
但是当我尝试注册时它显示错误。这是错误:
IntegrityError at /accounts/signup/
(1048, "Column 'group_id' cannot be null")
Request Method: POST
Request URL: http://127.0.0.1:8000/accounts/signup/
Django Version: 1.8.3
Exception Type: IntegrityError
Exception Value:
(1048, "Column 'group_id' cannot be null")
所以我的问题是如何在注册期间将必填字段 "group" 保存给新用户,因为组是我的用户模型中的必填字段。
最终我所做的是在模型中的 Group 字段中添加了一个默认值。当用户注册时,它会自动分配到默认组。
group = models.ForeignKey(Group, default='2') # id = '2' which is my default group.