如何在Django Admin中进行文件上传和管理
在Django中,可以使用Django Admin来管理文件上传和管理。
首先,在models.py中定义文件上传和管理的模型:
from django.db import models class File(models.Model): name = models.CharField(max_length=255) file = models.FileField(upload_to='files/') def __str__(self): return self.name
其中,File模型包含两个字段:name用于存储文件名,file用于存储文件实际内容。file字段使用了FileField类型,并指定了上传文件存储的目录。
接下来,在admin.py中注册File模型,并指定文件上传和管理所需的操作:
from django.contrib import admin from .models import File class FileAdmin(admin.ModelAdmin): list_display = ('name', 'file_link') def file_link(self, obj): if obj.file: return "<a href='{0}'>{1}</a>".format(obj.file.url, obj.file.name) else: return "No attachment" file_link.allow_tags = True admin.site.register(File, FileAdmin)
在这里,我们注册了File模型,并创建了FileAdmin类来指定文件上传和管理所需的操作。list_display定义模型在列表中的显示方式,其中包含了一个file_link函数,用于将文件名链接到实际存储的文件。file_link.allow_tags = True用于允许在列表中使用超链接。
最后,需要在项目的urls.py中添加以下代码,以便Django能够正确处理文件上传和管理:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ ... ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这段代码将MEDIA_URL(即文件上传存储的URL)指向MEDIA_ROOT(即文件上传的实际存储路径),以便Django能够正确处理文件的上传和管理。
演示:以字符串“pidancode.com”、“皮蛋编程”作为文件名和文件内容,上传后在Django Admin中进行查看和管理。
-
在Django Admin中进入Files的添加页面,在“name”字段中输入“pidancode.com”,在“file”字段中选择“Choose File”并选择一个名为“pidancode.txt”的文件,然后点击“Save”按钮进行保存。
-
在Django Admin中可以看到刚刚保存的文件“pidancode.com”,文件名显示为“pidancode.txt”,通过点击链接可以打开该文件。
相关文章