【发布时间】:2020-08-02 12:43:58
【问题描述】:
我对 django 和其他 API 框架非常陌生。我有一个项目,我正在使用 vueJS 作为前端。我需要为图表序列化一些数据。
对于其中一个 API 端点,我尝试将数据分组如下:
"day_of_the_week": {
"9am":[{"job":".."}],
"10am":[{"job":"..."}],
"11am": [{"job": ".."}],
...
}
我正在使用 Job 类,作为参考,这是作业端点的样子:jobs-api
因此,我创建了一个新端点,而不是图片上的内容,我将只显示一个包含任何给定日期数据的对象。在前端有一个带有过滤器的图表,可让用户按他们请求的日期过滤作业。在加载时,当用户没有指定星期几时,端点将返回“今天”的对象。
因为我是新手,所以我不知道在哪里执行此操作,我最初的想法是过滤 views.py,但现在我已经在序列化程序中完成了它,这给了我错误“对象类型作业不是 JSON 可序列化的”。
这是序列化器的样子: jobs-by-day-serializer
很明显,有些东西我不太了解,因此我们将不胜感激。
编辑: 这是我的views.py,我已经为查询集添加了过滤器以按天过滤,所以我现在可以按天过滤: jobs_by_day_viewset
【问题讨论】:
-
过滤应该在views.py中完成。您的 views.py 看起来如何?
-
感谢您的回答,我已将视图集添加到问题中
-
您需要做两件事:1)按查询分组。可能这会有所帮助:stackoverflow.com/questions/30465013/django-group-by-hour。 2)您需要创建自己的序列化器(可以根据需要序列化数据,而不是我猜的模型序列化器)。您应该将结果从 1 传递给该序列化程序。或者,如果 1 的输出直接为您工作,您甚至可能不需要序列化程序。
-
谢谢,我尝试了这种方法,但无法使其正常工作,我收到错误消息:unhashable 'slice'。我猜这与我需要以某种方式将字典转换为 json 对象的事实有关?
-
查询得到结果了吗?
标签: django api vue.js django-rest-framework django-serializer