django - 使用 django 动态创建文件
问题描述
我有 2 个模型 Uploades 和 File 一个用于图像,一个用于图像的 OCR 结果,所以每当我上传图像时,都会生成一个带有结果的文件,在管理面板和 DRF api root 上工作时它工作正常但是当我尝试 Postman 时,我收到 500 服务器错误并且图像是由未创建文件提交的,我真的不知道是什么原因,所以我会很感激一些帮助。这些是我的模型
class Uploads(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
title=models.CharField(max_length=100,default='none')
image=models.ImageField(upload_to='media',unique=True)
created_at = models.DateTimeField(auto_now_add=True)
super(Uploads, self).save(*args, **kwargs)
if self.id :
File.objects.create(
file=(ContentFile(Create_Pdf(self.image),name='file.txt')
))
Create_Pdf 函数只是运行 pytesseract:
import PIL.Image
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
def Create_Pdf(image):
text=pytesseract.image_to_string(PIL.Image.open(image))
return(text)
这是我的文件模型:
class File(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True)
label=models.CharField(max_length=100, default='none')
title=models.CharField(max_length=200,default='test')
file=models.FileField(upload_to='files')
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.id)
解决方案
推荐阅读
- apache-nifi - 使用 nifi - 我必须调用具有多个 API 端点的 API
- sql - Electron 和 Sqlite:SQLITE_NOTADB:文件不是数据库
- database - 如何从 MongoDb 的日期字段中查找最近的日期?
- svelte - Svelte 如何捕获浏览器后退按钮或卸载?
- ruby-on-rails - 我可以使用 Arel 创建的别名作为包含的一部分而不是加入来进行急切获取吗
- java - 错误:415 - 尝试使用 python 作为后端上传图像时,android 中出现不支持的媒体类型错误
- bash - 如何使用 shell 在所需的挂载点上挂载不同大小的 Nvm EBS 卷
- kubernetes - Kubernetes 为所有 Pod 提供服务,另一个只为领导者提供服务
- javascript - 如何使用 jQuery 或 AJAX 显示 ColdFusion 函数的返回值
- google-places-api - 为什么我没有从 Google Places API 获得多种类型的结果?