如何在Django基于类的视图中正确使用try / except

时间:2014-09-12 18:51:11

标签: python django django-class-based-views

我正在使用Python Twitter API进行一系列操作,所有这些操作都会在try / except块中捕获相同的错误。我想扩展Django的View对象包括TwitterView类中的错误,并让每个后续对象继承自TwitterView,根据请求的动作/ URL添加各自的get()方法。

示例twitter / views.py文件:

class TwitterView(View):

  def dispath(self, request, *args, **kwargs):
    '''
    Params: <magic!>
    '''

    try:
        network_data = super(TwitterView, self).dispatch(request, *args, **kwargs)
        return render_response(request, network_data)
    except TwitterOauthException, e:
        twitter_account_has_bad_oauth.send(sender=network.id)
        return return_error(request, e, e.status_code)
    except TwitterApiException, e:
        return return_error(request, e, e.status_code)

class TwitterFeed(TwitterView):

  def get(self, request, *args, **kwargs):
    network_id = self.kwargs.get('network_id',None)
    self.network = get_network(request.user, network_id, read=True)
    tl, actions = self.network.get_feed(since=self.kwargs.get('since',None), before=self.kwargs.get('before',None), page=self.kwargs.get('page',None), limit=self.kwargs.get('limit',None))
    return render_response(request, tl, actions)

现在编写代码时,在TwitterView.dispatch的try / catch块中处理的错误是否扩展到TwitterFeed等对象的GET请求?

0 个答案:

没有答案