django-admin上傳下載文件


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就能正確識別文件路徑,上傳下載文件了

 

下一篇介紹自定義頁面上傳下載文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM