我将二进制文件作为 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 自己提供它们并没有什么坏处。