在 Django Oscar 中自定义我的用户模型后,我收到以下错误消息:
IntegrityError at /
insert or update on table "basket_basket" violates foreign key constraint "basket_basket_owner_id_74ddb970811da304_fk_auth_user_id"
DETAIL: Key (owner_id)=(5) is not present in table "auth_user".
要自定义我的用户模型,我按照此处的说明进行操作。
首先,我编写了以下models.py 文件,该文件位于我的项目目录apps/user/models.py 中。
from django.db import models
from oscar.apps.customer.abstract_models import AbstractUser
from django.contrib.postgres.fields import ArrayField
class User(AbstractUser):
acct_bal = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)
purchased_items = ArrayField(models.IntegerField(), default=list)
这个想法是我希望用户有一个帐户余额(我稍后将用于付款)以及代表已购买商品的产品编号列表。
制作完models.py后,我将安装的应用程序编辑如下:
INSTALLED_APPS = [...
'shopworld.apps.user',
] + get_core_apps()
然后把它放在我的 settings.py 的底部:
AUTH_USER_MODEL = 'user.User'
然后我做了 ./manage.py 迁移,但由于某种原因,我收到了这个错误消息。我还尝试按照此处的建议删除 django_admin_log 表,但它不起作用。任何帮助将不胜感激。