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

Django执行makemigrations报错:__init__缺少必填参数'to'如何解决

问题复现环境

  • Python版本:3.8.10
  • Django版本:3.2.9
  • 执行命令:python3 manage.py makemigrations auth_app

错误原因

Django的ForeignKey字段定义时,to是必填的第一个位置参数,作用是指定当前外键关联的目标模型。从报错栈可以定位到,你在auth_app/models/account.py的Account模型中漏写了该参数:

# 错误写法
user = models.ForeignKey(related_name='account', on_delete= models.CASCADE)

缺少关联目标的ForeignKey初始化时就会抛出missing 1 required positional argument: 'to'的类型错误。

解决方法

根据你要关联的目标模型修改字段定义即可:

  1. 若关联Django内置用户模型,推荐两种写法:
# 写法1:直接引用内置User类
from django.contrib.auth.models import User
user = models.ForeignKey(to=User, related_name='account', on_delete=models.CASCADE)

# 写法2:引用配置项(自定义用户模型场景兼容性更好)
from django.conf import settings
user = models.ForeignKey(to=settings.AUTH_USER_MODEL, related_name='account', on_delete=models.CASCADE)
  1. 若关联自定义模型,将to的参数值替换为对应的目标模型类即可。

修改保存后重新执行makemigrations命令即可正常生成迁移文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:15:04