这是django中'max_length'的最大尺寸

zjm*_*126 67 django django-models

这是我的模特:

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)
Run Code Online (Sandbox Code Playgroud)

但它无法运行..

谢谢

Hae*_*aes 87

这取决于数据库后端.在Django的DB文件会告诉你,这max_length=255是保证始终工作.

如果您需要在问题中指定的金额,我建议您使用TextField.

  • TextField的最大大小也取决于数据库.对于MySQL来说,它大约有4万亿. (13认同)
  • 在这种情况下再加上这样一个事实:对于DB我使用它也将唯一选项限制为255,我个人坚持认为如果我需要一个大于255的CharField我将它变为TextField. (2认同)
  • 在MySQL中,Charfield是varchar,最大值为65,535(但这也是最大行大小),请参阅http://stackoverflow.com/questions/13506832/what-is-the-mysql-varchar-max-size.使用大的最大大小没有任何惩罚,MySQL将使用它实际需要的东西.请注意,Textfields的处理方式不同,具有性能影响,因此最好使用另一个表中的其他字段进行索引(每个DB页面的索引行数越多越好),找到所需内容,然后使用现在已知的密钥获取Textfield. (2认同)
  • 虽然TextField是> 255个字符串的正确选择,但它不会在模型(或数据库)级别强制执行`max_length`.这可能会使一些验证逻辑复杂化,这与CharField的情况不同,它允许您指定Django强制执行的`max_length`. (2认同)

小智 6

使用TextField替代

infowindow = models.TextField()
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`TextField` 不会在数据库级别验证 `max_length`。 (4认同)