django 1.8 allauth问题与自定义形式

时间:2015-06-30 20:52:11

标签: forms django-allauth django-1.8

我正在使用django allauth进行身份验证,并且我的自定义表单存在问题。我是第一次使用django 1.8,事情和过去有点不同。

这是我的模特:

from django.db import models
from django.contrib.auth.models import User

class FDUserProfile(models.Model):
    user = models.OneToOneField(User)
    organization = models.CharField(max_length=100)

这是我的表格:

from django import forms
from django.contrib.auth.models import User
from .models import FDUserProfile

class FDSignupForm(forms.ModelForm):
    class Meta:
        model = FDUserProfile
        fields = ['organization']

    first_name = forms.CharField(max_length=30, label='Voornaam')
    last_name = forms.CharField(max_length=30, label='Achternaam')
    organization = forms.CharField(max_length=100, label='Company')

    def signup(self, request, user):
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        profile = FDUserProfile(user=user, organization=self.cleaned_data['organization'])
        profile.save()

我得到的错误如下:

NOT NULL constraint failed: fdauth_fduserprofile.user_id

现在我不希望我的user_id为null,并且不太明白为什么会发生这种情况。我能够简化这个表单并使用User模型作为我的表单模型,只保存first_name和last_name字段,但我也需要存储客户端的公司。还有一点需要注意,这只是我注意到的另一件事。当我只使用first_name和last_name时,用户对象将保存,但不会发送任何电子邮件。一旦我越过这个桥,我就可以越过那座桥。

TIA!

0 个答案:

没有答案