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