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
相关产品推荐
相关产品推荐

