在django app中使用jquery fullcalendar

我正在使用fullcalendar jquery库在我的django博客应用程序页面中显示日历。我有一些由登录user创建的Post ,并希望向他显示每个月的日历视图,以及他每天number of posts如果在某一天没有发布post,则为0或0。

我已经包含了fullcalendar libary中给出的javascriptcss文件,我的页面成功显示了日历。但是,如何将数据从django视图传递到日历?当我检查html页面的来源时,我看到了日历由html表组成。

有没有人做过类似的事情?你能建议如何显示每个日历单元格中的post数量吗?

我试着想出这样的解决方案,对于特定的月份,我需要得到一个关键是白天的dict (例如:4月1日),价值是

 len(Post.objects.filter(month='april' ,day='1')) 

并将此dict传递给响应(它将上面的html页面呈现)。但是,如何让日历从该dict中获取每个值并将其显示在相应的单元格中?

如果我的想法有问题,请纠正我。

我选择了fullcalendar脚本,因为它看起来不错。但我不需要任何与事件相关的function。所以我对更简单的灵魂开放。如果你认为fullcalendar是矫枉过正,请建议一个更简单的选择

您需要提供fullcalendar“事件”数据,这些数据可以是post数量,也可以呈现为事件。 根据文档,它可以采用不同的格式,如js数组。 您只需将该数据传递到模板中即可。 模板然后可能看起来像这样:

  

其中posts_counts是fullcalendar支持的格式的posts_counts数组,请查看此处 。

视图可能如下所示。 这是一个粗略的例子,只是为了展示它是如何完成的:

 def calendar(request): posts_counts = [] for i in (1, 31): posts_counts.append({'title': len(Post.objects.filter(month='april', day=i)), 'start': '2012-04-%d' % i, 'end': '2012-04-%d' % i}) return render(request, 'calendar_template.html', {'posts_counts': simplejson.dumps(posts_counts)}) 

然后,应该将您的页面上的fullcalendar初始化为post数量作为事件。 也许你可以自定义日历外观,禁用事件拖放等。

找到post数量的解决方案会产生大量的SQL查询,想到更好的解决方案会好得多。