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

Django访问admin后台Profile页报错no such column: users_profile.user_id

错误原因
  • 根本原因是修改Profile模型新增user外键字段后,没有将模型变更同步到数据库,导致数据库表users_profile缺少对应的user_id外键列,触发查询报错。
  • 你的Profile模型存在两处笔误,不修复会导致迁移生成失败:
    1. short_intro字段定义末尾多了一个多余的>符号
    2. social_github字段被重复定义了两次
修复步骤
  1. 先修正Profile模型的笔误,参考修正后的代码片段:
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
    name = models.CharField(max_length=200, blank=True, null=True)
    email = models.EmailField(max_length=500, blank=True, null=True)
    # 移除末尾多余的>
    short_intro = models.CharField(max_length=200, blank=True, null=True)
    bio = models.TextField(blank=True, null=True)
    profile_image = models.ImageField(null = True, blank = True, upload_to='profiles/', default="profiles/user-default.png")
    # 只保留一个social_github定义,删除重复行
    social_github = models.CharField(max_length=500, null=True, blank=True)
    social_linkedIn = models.CharField(max_length=500, null=True, blank=True)
    social_youtube = models.CharField(max_length=500, null=True, blank=True)
    social_website = models.CharField(max_length=500, null=True, blank=True)
    created = models.DateTimeField(auto_now_add=True, editable=False)
    id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
    
    # 优化__str__方法,避免user为null时报错
    def __str__(self):
        if self.user:
            return self.user.username
        return self.name if self.name else "未绑定用户的Profile"
  1. 进入项目根目录,执行命令生成users应用的迁移文件:
    python manage.py makemigrations users
  2. 执行迁移命令将变更同步到数据库:
    python manage.py migrate users
  3. 重启Django开发服务器,再次访问admin后台的Profile页面即可正常加载。

特殊情况处理:如果执行迁移时提示字段冲突、迁移历史异常,可以先删除users应用migrations目录下除__init__.py外的所有文件,再删除项目根目录的SQLite数据库文件(db.sqlite3,操作前注意备份已有数据),之后重新执行上述的makemigrations和migrate命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:30:03