【发布时间】:2020-07-21 17:16:51
【问题描述】:
我想通过 pre_save 信号来保存文件 mime 类型。
from django.db.models.signals import pre_save
from django.db import models
import magic
class Media (models.Media):
file = models.FileField()
content_type = models.CharField(max_length=128, editable=False)
def media_pre_save(sender, instance, *args, **kwargs):
if not instance.content_type:
mime = magic.Magic(mime=True)
instance.content_type = mime.from_buffer(instance.file.read())
pre_save.connect(media_pre_save, sender=Media)
但是当我在 db 中查看它时,我得到了 application/x-empty。我做错了什么?
【问题讨论】:
-
谢谢,但是那个从表单对象中获取文件,是否可以从实例中获取它?我想做同样的事情,但使用
media_pre_save上的给定参数。
标签: python django django-admin mime-types