Django 中“ max_length”的最大大小是多少?

这是我的模型:

class Position(models.Model):
map = models.ForeignKey(Map,primary_key=True)
#members=models.CharField(max_length=200)
LatLng = models.CharField(max_length=40000)
infowindow = models.CharField(max_length=40000)

但是它不能运行。 max_length参数的最大大小是多少?

137925 次浏览

That depends on the database backend. The Django DB Docs will tell you, that max_length=255 is guaranteed to work always.

If you need something of the amount you've specified in your question, I'd suggest to use a TextField.

Use TextField instead

infowindow = models.TextField()

It depends on the backend database. If you use MySQL 5.6 then there is a limit of 65,535. If you are using above that then it will allow for 1024 also but not beyond that.

class Demo(models.Model):
max_test = models.CharField(max_length=1024)

I ran above on MySQL 5.7

It really depends on the database you use for the model. PostgreSQL, MySQL and so on have different settings and limits.

If you really need a long string or not sure how long the variable would be, always safe to just go with variable=models.TextField().

From the django docs

Any fields that are stored with VARCHAR column types may have their max_length restricted to 255 characters if you are using unique=True for the field. This affects CharField, SlugField. See the MySQL documentation for more details.

If a CharField is unique, then its max_length is 255 characters. Otherwise, its max_length on MySQL VARCHAR, 65535 characters.