我在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路径来解决此问题,还是必须对这些页面进行模板覆盖?
答案 0 :(得分:0)
我认为您可以在admin.py(来源:Django. Override the html format of a FileField field in the change page via ModelAdmin)中覆盖AdminFileWidget
尝试一下:
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)