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.