django 文件上传管理显示文件类型
时间: 2023-08-20 20:05:25 浏览: 71
在 Django 中,你可以通过使用 `FileField` 或 `ImageField` 字段来处理文件上传,并且可以通过 `upload_to` 参数指定上传文件的保存位置。如果你想要在管理界面中显示文件类型,你可以自定义管理界面的模型展示。
首先,在你的模型中,使用 `FileField` 或 `ImageField` 字段来处理文件上传,例如:
```python
from django.db import models
class MyModel(models.Model):
my_file = models.FileField(upload_to='uploads/')
```
接下来,你可以自定义管理界面的展示,创建一个 `ModelAdmin` 类,并重写 `list_display` 方法来显示文件类型。在 `list_display` 方法中,你可以使用 `file_type` 属性来获取文件类型,并将其添加到展示列表中。
```python
from django.contrib import admin
from django.utils.html import format_html
class MyModelAdmin(admin.ModelAdmin):
list_display = ('my_file', 'display_file_type')
def display_file_type(self, obj):
file_type = obj.my_file.file.content_type
return format_html('<span>{}</span>', file_type)
display_file_type.short_description = 'File Type'
admin.site.register(MyModel, MyModelAdmin)
```
在上面的代码中,我们定义了一个自定义的 `display_file_type` 方法,该方法获取上传文件的类型,并通过 `format_html` 函数将其以 HTML 的形式展示。
最后,将模型和自定义的 `ModelAdmin` 类注册到 Django 的管理界面中,这样在管理界面中就可以看到文件类型了。
请注意,为了获取文件类型,你需要安装 `python-magic` 或 `python-magic-bin` 包,并在你的项目中进行相关配置。