You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django自定义用户模型迁移报错:store.Product.created_by关联问题

解决Django自定义用户模型迁移时的关联错误

问题根源

你的store应用中Product模型的created_by字段仍在关联Django默认的auth.User模型,但你已经在settings.py中配置了自定义用户模型AUTH_USER_MODEL = 'account.UserBase',导致迁移时出现关联冲突。

修复步骤

  1. 打开store应用下的models.py文件,找到Product模型的created_by字段。
  2. 将外键的关联目标替换为自定义用户模型,以下两种写法均可:

写法一:通过settings.AUTH_USER_MODEL引用(推荐)

这种写法更灵活,后续若修改自定义用户模型的路径,无需改动此处代码:

from django.db import models
from django.conf import settings  # 导入settings模块

class Product(models.Model):
    # 保留其他字段...
    created_by = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        # 可选:添加related_name参数,比如related_name='created_products'
    )

写法二:直接导入自定义用户模型

若确定自定义用户模型的路径不会变动,也可直接导入:

from django.db import models
from account.models import UserBase  # 导入自定义用户模型

class Product(models.Model):
    # 保留其他字段...
    created_by = models.ForeignKey(
        UserBase,
        on_delete=models.CASCADE,
        # 可选:添加related_name参数,比如related_name='created_products'
    )

后续操作

修改完成后,重新执行迁移命令:

python manage.py makemigrations
python manage.py migrate

注意:如果之前已为store应用生成并执行过迁移文件,开发环境下可删除store/migrations目录中除__init__.py外的所有文件,再重新生成迁移;生产环境需谨慎处理,避免数据丢失。

内容的提问来源于stack exchange,提问作者Hosen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:35:12