2012-02-24 83 views
9
class LinguistResource(ModelResource): 

    class Meta: 
     model = Linguist 
     queryset = Linguist.objects.all() 
     resource_name = 'linguists_by_language' 
     filtering = { 
      "language": ('exact',), 
     } 

是否可以使「語言」過濾器是強制性的?如何在tastypie中強制使用某些過濾器?

我的目標是,如果提高錯誤GET參數缺少關鍵的「語言」

回答

13

您可以通過重寫build_filters搭上:

from tastypie.exceptions import BadRequest 

def build_filters(self, filters=None): 
    if 'language' not in filters: 
     raise BadRequest("missing language param") # or maybe create your own exception 
    return super(LinguistResource, self).build_filters(filters)