django-piston:如何使发射器返回可下载的文件?

时间:2011-11-29 17:13:36

标签: python django django-piston

我有以下发射器:

class iCalEmitter(Emitter):
    def render(self, request):
        data = self.construct()
        cal = Calendar()

        cal.add('prodid', 'iCalendar Feed')
        cal.add('version', '2.0')
        for event in data:
            if event.get('start'):
                event['start_time'] = event['start']
            if event.get('end'):
                event['end_time'] = event['end']

            ical_event = calEvent()
            ical_event.add('summary', event['title'])
            ical_event.add('dtstart', event['start_time'])
            ical_event.add('dtend', event['end_time']
                                    if event.get('end_time')
                                    else event['start_time'])
            ical_event['uid'] = event['id']
            cal.add_component(ical_event)

        return cal.as_string()

我想修改响应,以便返回具有特定文件名的可下载文件。我该怎么做呢? django-piston在这方面的文件似乎非常薄弱。

1 个答案:

答案 0 :(得分:0)

通过发射器修改响应头并不是一件容易的事,所以我采取了不同的路线。我在我的应用程序中添加了一个URL模式以匹配/events/calendar.ics,并通过URL模式传递emitter_format参数。丑陋,但它确实有效。