考虑 Django 中的一个非常简单的仪表板应用程序。它有2个模型:
- 页
- 小部件
自然地,Page 和 Widget 具有 ManyToMany 关系。
像任何好的仪表板实现一样,设计人员可以在小部件中更改 3 件事:
- 驱动小部件的数据源
- 在页面上放置小部件
- 小部件内的数据表示
数据使用 Widget 中的 URL 字段指定,并由基于 Django REST 框架和 django-filter 后端的 REST API 提供服务。
页面上的放置是使用优秀的 Gridster 来满足的。
这留下了演示部分。我有两种可能的解决方案:
- 将模板 TextField 附加到小部件。数据将以 JSON 格式从 Web 服务中获取,并根据客户端 Widget 中定义的模板(把手)呈现。
- 将模板名称作为 URL 中的查询字符串传递给 REST API,并使用用户指定的模板呈现数据。
现在已经明确定义了上下文(希望如此),以下是我的问题:
- 有什么方法可以选择第一个解决方案,并且仍然可以使用 DRF 序列化程序生成的自动表单?
- 如果不是,我选择第二种解决方案,在安全性、代码维护、代码质量、测试等方面是否存在任何潜在的陷阱?为什么我没有看到其他人这样做,即让用户通过查询字符串选择模板?
- 我还缺少其他解决方案吗?