Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 用户在仪表板应用程序的小部件中控制数据的显示-最佳实践?_Django_Django Templates_Django Rest Framework - Fatal编程技术网

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

Django 用户在仪表板应用程序的小部件中控制数据的显示-最佳实践?,django,django-templates,django-rest-framework,Django,Django Templates,Django Rest Framework,考虑Django中一个非常简单的仪表板应用程序。它有两种型号: 页面 小部件 当然,页面和小部件有很多关系 与任何良好的仪表板实现一样,设计师可以在小部件中更改3项内容: 驱动小部件的数据源 小部件在页面上的位置 小部件内的数据表示 数据是使用小部件中的URL字段指定的,并由基于Django REST框架的REST API和Django过滤器后端提供服务 页面上的位置使用优秀的Gridster进行调整 这就剩下演示部分了。我有两种可能的解决办法: 将模板文本字段附加到小部件。数据将以JSON格式

考虑Django中一个非常简单的仪表板应用程序。它有两种型号:

  • 页面
  • 小部件
  • 当然,页面和小部件有很多关系

    与任何良好的仪表板实现一样,设计师可以在小部件中更改3项内容:

  • 驱动小部件的数据源
  • 小部件在页面上的位置
  • 小部件内的数据表示
  • 数据是使用小部件中的URL字段指定的,并由基于Django REST框架的REST API和Django过滤器后端提供服务

    页面上的位置使用优秀的Gridster进行调整

    这就剩下演示部分了。我有两种可能的解决办法:

  • 将模板文本字段附加到小部件。数据将以JSON格式从web服务中获取,并根据客户端小部件中定义的模板(手柄)呈现
  • 将模板名称作为URL中的查询字符串传递给RESTAPI,并使用用户指定的模板呈现数据
  • 现在上下文已经明确定义(希望如此),下面是我的问题:

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

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

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

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

    如果(尽管如此)您所说的“自动表单”是指您仍然能够使用DRF在其web可浏览API中提供的HTML表单,那么答案是否定的。可浏览API是围绕返回整个web页面的HTML呈现器构建的。其中包括您将要使用的JSON的漂亮打印表示,以及您感兴趣的web表单

    如果您走这条路,您将需要在客户机上生成表单,使用您选择的库提供的任何模型、视图、模板和绑定功能


    我希望这有帮助。祝你好运。

    谢谢你的回答。事实上,我发现并最终使用了一个惊人的项目,它提供了两个世界中最好的!一定要退房。这是2012年美国djangocon的幻灯片。也许在未来的项目中,它对你或其他任何人都有用。。