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就能正確識別文件路徑,上傳下載文件了
下一篇介紹自定義頁面上傳下載文件