如何在基于 class 的视图中传递 URL 中的变量

How to pass a variable in the URL in class based views

我有以下事件供稿(使用 Django-ical

class EventFeed(ICalFeed):

    def items(self):
        meeting_id = self.kwargs['meeting_id']
        return Meeting.objects.get(id=meeting_id)

我正在尝试通过 URL conf 传递 meeting_id,如下所示:

url(r'^meetings/(?P<meeting_id>\d+)/$', EventFeed()),

然而这returns'EventFeed' object has no attribute 'kwargs'

正如丹尼尔在评论中指出的那样,这是一个联合框架。因此我们需要在 Meeting 对象上使用 get_object,并且 filter 而不是 get

class EventFeed(ICalFeed):

    def get_object(self, request, *args, **kwargs):
        return int(kwargs['meeting_id'])

    def items(self, meeting_id):
        return Meeting.objects.filter(id=meeting_id)