我在 django 中创建了一个网站,它主要利用一些简单的应用程序让一小群用户添加事件、管理显示上传文件的页面等。最复杂的部分是每个用户都有一个主页,其中包含他们可以使用的内容通过 MarkupField 管理自己(我正在使用来自https://github.com/jamesturk/django-markupfield的那个),以及一系列他们也控制其内容的子页面。
我的问题是如何让他们上传图像和文件,并在他们的页面上轻松引用这些图像和文件,以便包含图像或创建文件链接。上传很好,如果您知道 ImageField 将图像/文件放在哪里,则可以静态引用图像/文件,但理想情况下,用户不必知道 django 实际存储文件的位置或静态提供文件的位置. 到目前为止,我最好的想法是:
- 使用 UserPage 作为 ForeignKey 创建文件/图像上传模型
- 让用户为每个页面上传任意数量的图像或文件
- 修改 MarkupField 以首先解析文本并用正确的静态 url 替换一些新语法(例如,像 '&&IMAGE_1' 来引用与页面关联的第一个上传图像),以用于引用的图像字段实际存储它的位置。
这样做的缺点是我正在发明自己的一小段语法并且必须可靠地解析它。这应该不会太难,但是是否有现有的方法来完成同样的事情,或者值得考虑的替代方法?我不确定我是否会在 django 框架内错过至少一种更自然的方法。