如何在DRF中获取FileField的MIME类型并发送到参数



我想在drf中发送mime类型的FileField。但我不知道怎么做。

{
"id": 1,
"document": "http://127.0.0.1:8000/images/articles_auth_with_user_eZUJmTW.png",
"filesize": "239.55 KB",
"filename": "articles_auth_with_user_eZUJmTW.png"
"mimetype": ""

},

这是我发送的回复。我想在这里发送mime类型。

Models.py:

class DocumentModel(models.Model):
id=models.AutoField(primary_key=True, auto_created=True, verbose_name="DOCUMENT_ID")
document=models.FileField()

class Meta:
verbose_name_plural="Documents"
ordering=["document"]
def __str__(self):
return f'{self.document}'
@property
def filesize(self):
x = self.document.size
y = 512000
if x < y:
value = round(x / 1024, 2)
ext = ' KB'
elif x < y * 1024:
value = round(x / (1024 * 1024), 2)
ext = ' MB'
else:
value = round(x / (1024 * 1024 * 1024), 2)
ext = ' GB'
return str(value) + ext
@property
def filename(self):
return self.document.name

Serializers.py:

class DocumentSerializer(serializers.ModelSerializer):



class Meta:
model=DocumentModel
fields = ['id', 'document', 'filesize', 'filename']

好的,当任何文件上传到前端打印时,我解决了这个问题,并最终获得了它的mime类型

@property
def mimetype(self):
return mimetypes.guess_type(self.document.url)[0]

最新更新