gpt4 book ai didi

django - 在 Django 管理界面中链接以直接从数据库下载模型字段

转载 作者:行者123 更新时间:2023-11-29 12:22:30 25 4
gpt4 key购买 nike

我将二进制文件存储为模型的 TextField() 中的 base64 编码字符串。我是这样做的:

class Foo(models.Model):
_data = models.TextField(db_column='data', blank=True)

def set_data(self, data):
self._data = base64.encodestring(data)

def get_data(self):
return base64.decodestring(self._data)

data = property(get_data, set_data)

(from this snippet)。

如何提供从 Django 管理界面(最好是从模型实例的更改/编辑页面)下载这些文件(解码后)的链接?

我可以解码它们并将它们显示在页面上 - 就像任何其他模型字段一样 - 但它要么不显示要么是垃圾,因为它们是二进制文件。我想提供一个下载链接。

我可以通过谷歌搜索到的关于 Django 文件的大部分信息都假设我正在接受用户上传或者我想直接从网络服务器提供静态(媒体)文件。两者都不是。我的文件很小,不经常使用,并且仅供管理使用,因此将它们直接存储在数据库中或让 Django 自己提供它们并没有什么坏处。

最佳答案

查看 ModelAdmin.get_urls(self) 的文档:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_urls

有一个示例说明如何将 View 添加到 ModelAdmin 对象。您的自定义 View 应返回一个响应,其中内容是您正在存储的 base64 数据(尽管您可能希望将其从 base64 转换回二进制)。

然后您可以覆盖该模型的管理模板以包含指向您的自定义 View 的链接:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates

关于django - 在 Django 管理界面中链接以直接从数据库下载模型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11551642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com