Django createView return UNIQUE constraint failed: answer_profile.user_id when i submited form

Я пытаюсь добавить профиль пользователя для пользователей на моем сайте, когда они завершают создание формы регистрации пользователя, она перенаправляет пользователя в модель Profile, где он создает профиль для своей учетной записи. Я успешно создал форму регистрации пользователя и она работает нормально, но когда форма отправлена и перенаправляет нового пользователя в модель Profile, где я использую CreateView, форма выбрасывает ошибку, когда я отправил форму.

ошибка:

 IntegrityError at /CreateProfile/
 UNIQUE constraint failed: answer_profile.user_id

Есть ли способ создать пользовательский профиль пользователя для всех новых пользователей, когда они создают учетную запись в моем приложении. Например, Stack Overflow. Когда пользователь создает аккаунт с помощью Github, Facebook или Gmail, Stack Overflow создает пользовательский профиль пользователя, который вы можете редактировать. Я успешно создал профиль для редактирования.

мои взгляды:

class CreateProfile(CreateView):
    model = Profile
    fields = ['profile_image', 'stories', 'website', 'twitter', 'location']
    template_name = 'create.html'
    success_url = reverse_lazy('index')

    def form_valid(self, form):
        form.instance.user = self.request.user
        return super (CreateProfile, self).form_valid(form)

def register(request):

if request.method == 'POST':
    username = request.POST['username']
    first_name = request.POST['first_name']
    last_name = request.POST['last_name']
    email = request.POST['email']
    password = request.POST['password']
    password2 = request.POST['password2']

    if password == password2:
        if User.objects.filter(email=email).exists():
            messages.info(request, 'Email or user name Already taking')
            return redirect('register')
        elif User.objects.filter(username=username).exists():
            messages.info(request, 'username is taken')
            return redirect('register')
        else:
            user = User.objects.create_user(username=username, first_name=first_name, last_name=last_name, email=email, password=password)
            user.save();
            return redirect('Create')
    else:
        messages.info(request, 'Password Not Match')
        return redirect('register')   
    return redirect ('/')     
else:
    return render(request, 'signup.html')

моя модель:

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    profile_image = models.ImageField(upload_to='avatar', blank=True, null=True)
    stories = RichTextField(blank=True, null=True)
    twitter = models.URLField(max_length=300, blank=True, null=True)
    website = models.URLField(max_length=300,blank=True, null=True)
    city = models.CharField(max_length=50, blank=True, null=True)
    location = models.CharField(max_length=80, blank=True, null=True)
    slug = models.SlugField(unique=True, max_length=200)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.user)
        super(Profile, self).save(*args, **kwargs)

    def __str__(self):
        return str(self.user)
Вернуться на верх