如何在Django Admin中显示FileField中附件的下载链接?

Sky*_*Fox 11 django-admin filefield

我的django模型中有FileField:

file = models.FileField(upload_to=FOLDER_FILES_PATH)
Run Code Online (Sandbox Code Playgroud)

在Django管理部分更改此模型我有这个文件的完整路径(默认情况下):

Currently: /home/skyfox/Projects/fast_on_line/order_processor/orders_files/mydog2_2.jpg 
Run Code Online (Sandbox Code Playgroud)

如何为管理员面板用户显示下载此文件的链接?

Lap*_*anc 22

例如,如果你有一个模型"Case",你可以在你的类中添加一个方法,"创建"上传文件的链接:

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
Run Code Online (Sandbox Code Playgroud)

然后,在你的admin.py中

list_display = [..., file_link, ...]
Run Code Online (Sandbox Code Playgroud)