创建models.py时,发现行大小太大的问题,如何解决此问题

如何解决此问题:

  

引发errorclass(errno,errval)django.db.utils.InternalError:(1118,   您的行太大。所用表格类型的最大行大小,   不计算BLOB,是65535。这包括存储开销,请检查   手册。您必须将某些列更改为TEXT或BLOB's

请帮助解决此问题,这是模型代码:

from django.db import models

class Newsdeatils(models.Model):
    news_provider_id = models.CharField(max_length=5000)
    news_title =  models.CharField(max_length=5000)
    news_details = models.CharField(max_length=5000)
    news_image = models.CharField(max_length=5000)
    news_page_url = models.CharField(max_length=5000)
    next_page = models.CharField(max_length=5000)
    news_des = models.CharField(max_length=5000)
kazmax 回答:创建models.py时,发现行大小太大的问题,如何解决此问题

只需使用TextField即可满足这种长度要求。

通常,TextFields实际上并不受限于特定长度w.r.t.实施限制(关于文件系统或使用的通用数据库系统)。 TextFields的使用行为与CharFields非常相似。 您可以了解差异here

您的代码将变成这样:

from django.db import models

class Newsdeatils(models.Model):
    news_provider_id = models.TextField(max_length=5000)
    news_title =  models.TextField(max_length=5000)
    news_details = models.TextField(max_length=5000)
    news_image = models.TextField(max_length=5000)
    news_page_url = models.TextField(max_length=5000)
    next_page = models.TextField(max_length=5000)
    news_des = models.TextField(max_length=5000)

请注意,不需要在max_length上设置TextField属性(使用CharField时)。此max_length属性也不在数据库级别上强制执行,而仅用于表单验证。

模型中要考虑的其他事项: 为什么news_provider_idCharField?不应该是ForeignKey吗? news_image字段之类的内容也是如此。这可能应该是BinaryField

本文链接:https://www.f2er.com/3066735.html

大家都在问