Django - Benutzerprofil bei der Benutzererstellung erstellen

Ich verfolge die Django-DokumentationHier Um ein einfaches Ziel zu erreichen: Erstellen Sie ein Benutzerprofil, sobald ein neuer Benutzer erstellt wird.

Ich habe eine 'Accounts'-App und meine accounts.models sehen so aus:

# -*- coding: utf-8 -*-
from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from main.models import Store

class UserProfile(models.Model):

    GENRE_CHOICES = (
        ('m', 'Masculino'),
        ('f', 'Feminino'),
    )
    MARITAL_STATUS_CHOICES = (
        ('s', 'Solteiro'),
        ('c', 'Casado'),
        ('d', 'Divorciado'),
        ('v', 'Viúvo'),
    )

    user = models.ForeignKey(User, unique=True)
    birth_date = models.DateField()
    genre = models.CharField(max_length=1, choices=GENRE_CHOICES)
    address = models.CharField(max_length=150)
    postal_code_4 = models.PositiveIntegerField()
    postal_code_3 = models.PositiveIntegerField()
    locatity = models.CharField(max_length=30)
    marital_status = models.CharField(max_length=1, choices=MARITAL_STATUS_CHOICES)
    child_amount = models.PositiveSmallIntegerField()
    is_merchant = models.BooleanField(default=False)
    store = models.ForeignKey(Store, null=True)

def create_user_profile(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)

post_save.connect(create_user_profile, sender=User)

Alles sieht für mich gut aus, aber wenn ich versuche, einen neuen Benutzer hinzuzufügen (mit Django Admin), anstatt einen neu erstellten Benutzer und ein neu erstelltes Benutzerprofil zu haben, erhalte ich folgende Fehlermeldung:InternalError unter / admin / auth / user / add / current transaction wird abgebrochen, Befehle werden bis zum Ende der Transaktionssperre ignoriert

Hier ist der Traceback-Fehlerteil:

/djangoProjects/lwboanova/lwboanova/apps/accounts/models.py in create_user_profile

34: UserProfile.objects.create(user=instance)

Es scheint ein Integritätsfehler zu sein, aber ich verstehe den Grund dafür nicht.

Wäre toll, wenn mir jemand dabei helfen könnte.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage