首页 > 解决方案 > Django 模型 FileField 大文件上传

问题描述

我需要在 Django 模型中使用 FileField 字段时上传大文件(大约 1GB)。这给出了错误 DATA_UPLOAD_MAX_MEMORY_SIZE。我想我需要在保存模型时使用分块上传。我怎样才能做到这一点?或者有没有其他解决方案?

RequestDataTooBig at /admin/supports/software/add/
Request body exceeded settings.DATA_UPLOAD_MAX_MEMORY_SIZE.
Request Method: POST
Request URL:    http://0.0.0.0:8000/admin/supports/software/add/
Django Version: 3.0.5
Exception Type: RequestDataTooBig
Exception Value:    
Request body exceeded settings.DATA_UPLOAD_MAX_MEMORY_SIZE.
Exception Location: /usr/local/lib/python3.8/site-packages/django/http/request.py in body, line 297
Python Executable:  /usr/local/bin/python
Python Version: 3.8.3
Python Path:    
['/app',
 '/app',
 '/usr/local/lib/python38.zip',
 '/usr/local/lib/python3.8',
 '/usr/local/lib/python3.8/lib-dynload',
 '/usr/local/lib/python3.8/site-packages']
Server time:    Prş, 26 Ağu 2021 15:24:51 +0300

我的模型:

class Software(AbstractBasicFTPSupportModel):
category = models.ForeignKey(
    to="SupportCategory", related_name="softwares", on_delete=models.CASCADE, verbose_name=_("category"),
)
related_products = models.ManyToManyField(
    "product.Product", blank=True, related_name="softwares", verbose_name=_("related products")
)
software_file = models.FileField(
    upload_to=save_support_file, verbose_name=_("software file"), null=True, blank=True, max_length=255,
)

标签: pythonpython-3.xdjango

解决方案


在 settings.py 中设置 FILE_UPLOAD_MAX_MEMORY_SIZE


推荐阅读