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

Django执行migrate报错:TypeError意外关键字参数max_lenght

解决Django migrate时的TypeError问题

兄弟,你碰到的这个问题其实就是个简单的拼写错误!

你看你models.py里所有的max_lenght都写错了——Django CharField要求的参数名是max_length(注意是length,正确拼写是l-e-n-g-t-h,你写成了l-e-n-g-h-t)。因为参数名拼写错误,Django识别不了这个关键字参数,所以才会抛出TypeError: __init__() 收到意外的关键字参数'max_lenght'的错误。

只需要把所有的max_lenght改成max_length就可以解决问题啦,修正后的代码如下:

from django.db import models
class Album(models.Model):
    artist = models.CharField(max_length=250)
    album_title = models.CharField(max_length=500)
    genre = models.CharField(max_length=100)
    album_logo = models.CharField(max_length=1000)
class Song(models.Model):
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    file_type = models.CharField(max_length=10)
    song_title = models.CharField(max_length=250)

改完之后再重新运行python manage.py makemigrations(如果之前没生成过迁移文件的话),然后执行python manage.py migrate就没问题啦。

作为初学者,这种拼写小失误很常见,以后写代码的时候多留意参数名的拼写就好~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:48:37