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.