如何将带有Django的iCalendar对象传递给模板?

时间:2013-03-11 19:17:55

标签: django icalendar

我正在使用iCalendar生成.ics文件,然后将其传递给我的模板。这工作正常,我最终得到一个以下结构的字符串:

BEGIN:VCALENDARVERSION:2.0PRODID:-//My%20calendar%20product//mxm.dk//BEGIN:VEVENTSUMMARY:Meeting%20DTSTART;VALUE=DATE-TIME:20130301T050000ZDTEND;VALUE=DATE-TIME:20130301T050000ZDTSTAMP;VALUE=DATE-TIME:20130301T050000ZUID:20050115T101010/info@mysite.comPRIORITY:5END:VEVENTEND:VCALENDAR
但是,我不知道处理这个问题的最佳方法是什么。我想让它可点击,以便观众可以将其添加到他们的日历中。

我尝试过的方法只是将其嵌入href(因为它不是网址而无效):

<a class="btn-yellow" href="{{ical}}">Add to my calendar</a>

我应该怎么做,这是一个可引发的,添加到日历按钮?

2 个答案:

答案 0 :(得分:0)

您希望将href链接指向用户日历/电子邮件客户端。说起来容易做起来难。如果你看看eventbrite是如何做到的,实际上你可以复制他们的代码,它可以顺利运行。例如,我没有outlook,点击保存到outlook只需将.ics文件下载到我的桌​​面。我确实使用谷歌日历并拥有一个雅虎帐户,点击任一链接将我带到他们各自的日历。虽然我不喜欢href属性中使用的内联javascript ...更好的方法是将它链接到href中的ics,然后使用javascript重定向用户onclick。这样,如果他们禁用了javascript,他们仍然会获得ics。您可以在此处查看其中的示例:http://www.eventbrite.com/event/5572613838

答案 1 :(得分:0)

对于您创建的由客户端识别为icalendar的icalendar文件,您需要将html标题Content-type设置为text/calendarsee rfc6047 mime type),这只能在服务器端不在您的HTML代码中。

您可以在html代码中尝试的方法是通过type attribute of a address element声明content-type