djangoadmin默认上传文件无法浏览,可以按以下方法解决
class TestData(models.Model): name = models.CharField(max_length=200) data = models.FileField(upload_to='appname/', null=True, blank=True) img = models.ImageField(upload_to='appname/', null=True, blank=True) def __str__(self): return self.name
创建文件表,加入admin.py
@admin.register(models.TestData) class TestDataAdmin(admin.ModelAdmin): pass
后台上传文件,后浏览无文件。
解决方法:
1.settings加入
MEDIA_URL = 'data/' MEDIA_ROOT = 'data/'
MEDIA_ROOT = 'data/'
于是上传文件的路径就是MEDIA_ROOT = 'data/'与upload_to='appname/'连起来data/appname/
上传a.txt,目录为data/appname/a.txt。
MEDIA_URL = 'data/'
表示任何上传文件链接前缀为 'data/'与upload_to='appname/'连起来data/appname/
打开后链接对了,django无法识别路径。
2.urls.py加入re_path(r"data/(?P<path>.*)$", serve, {"document_root": settings.MEDIA_ROOT})
from . import settings from django.contrib import admin from django.urls import path, include, re_path from django.views.static import serve urlpatterns = [ path('appname/',include('appname.urls')), path('admin/', admin.site.urls), re_path(r"data/(?P<path>.*)$", serve, {"document_root": settings.MEDIA_ROOT}), ]
这样djangoadmin就能正确识别文件路径,上传下载文件了
下一篇介绍自定义页面上传下载文件