【发布时间】:2012-07-18 02:16:22
【问题描述】:
我将二进制文件作为 base64 编码字符串存储在模型的 TextField() 中。我是这样做的:
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)
如何提供从 Django 管理界面(最好是从模型实例的更改/编辑页面)下载这些文件(解码后)的链接?
我可以解码它们并将它们显示在页面上 - 就像任何其他模型字段一样 - 但它要么不显示,要么就是垃圾,因为它们是二进制文件。我想提供一个下载链接。
我可以在谷歌上搜索到的关于 Django 文件的大部分信息都假设我正在接受用户上传,或者我想直接从网络服务器提供静态(媒体)文件。也不是这样。我的文件很小,不经常使用,并且仅用于管理用途,因此直接将它们存储在数据库中或让 Django 自己提供它们并没有什么坏处。
【问题讨论】:
标签: django postgresql django-admin