gpt4 book ai didi

django - 用户控制的仪表板应用程序小部件中的数据显示 - 最佳实践?

转载 作者:行者123 更新时间:2023-12-04 08:36:56 24 4
gpt4 key购买 nike

考虑一个非常简单的 Django 仪表板应用程序。它有 2 个模型:

  1. 页面
  2. 小工具

Page 和Widget 自然是ManyToMany 关系。

与任何优秀的仪表板实现一样,设计人员可以在小部件中更改 3 件事:

  1. 驱动小部件的数据源
  2. 小部件在页面上的位置
  3. 在小部件内显示数据

数据使用小部件中的 URL 字段指定,并由基于 Django REST Framework 和 django-filter 后端的 REST API 提供。

页面上的布局使用优秀的 Gridster 来满足。

这留下了 Presentation 部分。我有两种可能的解决方案:

  1. 将模板 TextField 附加到 Widget。数据将从 JSON 格式的 Web 服务中获取,并根据客户端 Widget 中定义的模板(handlebars)呈现。
  2. 将模板名称作为 URL 中的查询字符串传递给 REST API,并使用用户指定的模板呈现数据。

现在上下文已经明确定义(希望如此),以下是我的问题:

  1. 有什么方法可以让我选择第一个解决方案并仍然能够使用 DRF 序列化程序生成的自动表单?
  2. 如果没有,并且我选择了第二种解决方案,那么在安全性、代码维护、代码质量、测试等方面是否存在任何潜在的陷阱?为什么我没有看到其他人这样做,即让用户通过查询字符串选择模板?
  3. 还有我遗漏的任何其他解决方案吗?

最佳答案

您的第一个选项似乎最有希望:以 JSON 格式获取数据并将其插入到客户端的模板中。都好。

那么您能否做到这一点“并且仍然能够使用 DRF 序列化程序生成的自动表单”? — 简短的回答,这取决于你所说的“自动表格”是什么意思。

序列化器获取数据字典,对其进行验证并(对于 ModelSerializer 子类)将其转换为您的(模型)对象实例。如果通过“自动表单”你的意思是你仍然能够进行这种验证行为,那么答案是肯定的。在客户端上创建您的 JSON 负载并向 API 发送适当的 HTTP 请求。 Django Rest Framework 的序列化程序将按预期工作。

如果(虽然)您所说的“自动表单”是指您仍然能够使用 DRF 在其网络浏览器 API 中提供的 HTML 表单,那么答案是否定的。可浏览的 API 是围绕返回整个网页的 HTML 渲染器构建的。其中包括您将使用的 JSON 的精美打印表示,以及在此假设下您感兴趣的 Web 表单。

如果你走这条路,你需要在客户端生成表单,使用你选择的库提供的任何模型、 View 、模板和绑定(bind)功能。

希望对您有所帮助。祝你好运。

关于django - 用户控制的仪表板应用程序小部件中的数据显示 - 最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17315605/

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