我的django模型中有FileField:
file = models.FileField(upload_to=FOLDER_FILES_PATH)
在Django管理部分中,为了更改此模型,我有这个文件的完整路径(默认情况下):
Currently: /home/skyfox/Projects/fast_on_line/order_processor/orders_files/mydog2_2.jpg
如何为管理员面板用户显示下载此文件的链接?
答案 0 :(得分:22)
例如,如果你有一个模型“案例”,你可以在你的类中添加一个方法,“创建”上传文件的链接:
class Case(models.Model)
...
file = models.FileField(upload_to=FOLDER_FILES_PATH)
...
def file_link(self):
if self.file:
return "<a href='%s'>download</a>" % (self.file.url,)
else:
return "No attachment"
file_link.allow_tags = True
然后,在你的admin.py
中list_display = [..., file_link, ...]
答案 1 :(得分:2)
您只需更改admin.py,
即可from django.contrib import admin
from app.models import *
class AppAdmin(admin.ModelAdmin):
list_display = ('author','title','file_link')
def file_link(self, obj):
if obj.file:
return "<a href='%s' download>Download</a>" % (obj.file.url,)
else:
return "No attachment"
file_link.allow_tags = True
file_link.short_description = 'File Download'
admin.site.register(AppModel , AppAdmin)
答案 2 :(得分:1)