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就能正确识别文件路径,上传下载文件了

下一篇介绍自定义页面上传下载文件

原文地址:https://www.cnblogs.com/zerotest/p/14387266.html