Tôi đang theo tài liệu Django here để đạt được mục tiêu đơn giản: Tạo hồ sơ người dùng ngay khi người dùng mới được tạo.Django - Tạo hồ sơ người dùng khi tạo người dùng
Tôi có một ứng dụng 'tài khoản' và accounts.models của tôi trông như thế này:
# -*- 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)
Tất cả mọi thứ có vẻ tốt đẹp đối với tôi nhưng khi cố gắng thêm người dùng mới (sử dụng django admin), thay vì có một mới được tạo ra sử dụng và lý lịch thành viên, tôi nhận được lỗi sau: InternalError tại/admin/auth/người dùng/thêm/ giao dịch vãng lai được hủy bỏ, các lệnh bị bỏ qua cho đến khi kết thúc khối giao dịch
Dưới đây là phần lỗi traceback :
/djangoProjects/lwboanova/lwboanova/apps/accounts/models.py in create_user_profile
34: UserProfile.objects.create(user=instance)
Có vẻ như lỗi toàn vẹn nhưng tôi không hiểu lý do.
Sẽ tuyệt vời nếu bạn có thể giúp tôi về điều này.
Bạn đã cài đặt thanh công cụ django chưa? Nếu vậy hãy thử vô hiệu hóa nó để bạn nhận được thông tin lỗi tốt hơn. –