【问题标题】:How to change the path in the change page of the admin django panel如何在 admin django 面板的更改页面中更改路径
【发布时间】:2020-12-08 14:26:01
【问题描述】:

我在 django 管理面板中上传的所有文件都存储在 FTP 服务器中,没有文件存储在本地。

An example of how the change page looks after the file has been uploaded

我想知道如何更改那个带圆圈的href,这样当我点击它时,路径对应于ftp路径+上传文件的名称。

所以它当前链接到“http://127.0.0.1:8000/admin/basic_app/software/6/change/profile_pics/file_name”,但它应该链接到类似“ftp://:@:/文件夹/文件名”,这样当点击它时,它会在 FTP 服务器上打开文件。

这是否可以通过在某处更改 url 路径来解决,还是我必须对这些页面进行模板覆盖?

【问题讨论】:

    标签: django django-models django-admin django-urls


    【解决方案1】:

    我认为你可以在 admin.py 中覆盖 AdminFileWidget(来源:Django. Override the html format of a FileField field in the change page via ModelAdmin

    试试这个:

    from django.utils.safestring import mark_safe
    
    class AdminMediaWidget(AdminFileWidget):
        def render(self, name, value, attrs=None,renderer=None):
            output = []
            if value and getattr(value, "url", None):
                image_url = value.url
                output.append('Real ftp link : <a href="ftp://myftp/{0}">{1}</a>'.format(image_url, image_url))
    
            output.append(super(AdminFileWidget, self).render(name, value, attrs))
            return mark_safe(''.join(output))
    
    
    class FileAdmin(admin.ModelAdmin):
        formfield_overrides = {
            FileField: {'widget': AdminMediaWidget},
        }
    
    
    admin.site.register(MyModelFile,FileAdmin)
    

    【讨论】:

    • 谢谢,这行得通。但是链接现在在“当前”上面,所以旧链接仍然在“真正的ftp链接”下面,所以现在那里有两个链接。没有办法删除“当前”部分吗?
    • 我还遇到了一个解决方案,它在更改页面顶部添加一个带有您想要的链接的按钮,尽管在这种情况下这并不是我真正想要的。以防万一看到此内容的任何人对该功能感兴趣,我将在下面添加代码。将此行添加到 admin.py class FileAdmin(admin.ModelAdmin): def view_on_site(self, obj): return 'ftp://' + str(obj.file) admin.site.register(MyModelFile, FileAdmin)
    • 如果要删除当前+更改选项=>删除此行:output.append(super(AdminFileWidget, self).render(name, value, attrs))
    • 谢谢埃里克!这就是我一直在寻找的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2023-01-18
    相关资源
    最近更新 更多