2013-04-30 3 views
1

Я использую Django 1.5 с поршнем. Всякий раз, когда я пытаюсь свернуться следующий URL:Ошибка Django Piston

http://127.0.0.1:8000/search/?limit=20&uri= 

Я получаю следующее сообщение об ошибке:

["NotFound"] 

Шаблон URL:

search_resource = Resource(handler=SearchHandler) 

urlpatterns = patterns('', 
    url(r'^', annotation_resource), 
    url(r'^search/$', search_resource), 

) 

и обработчик для запроса:

class SearchHandler(AnonymousBaseHandler): 
    allowed_methods = ('GET',) 
    def read(self, request, id=None): 
     non_query_args = ['offset', 'limit', 'all_fields'] 
     offset = int(request.GET.get('offset', 0)) 
     limit = int(request.GET.get('limit', 20)) 
     query=dict([(k,v) for k,v in request.GET.items() if not k in non_query_args]) 
     notes = Annotations.find(query).limit(limit).skip(offset) #.sort([(, pymongo.DESCENDING if orderDesc else pymongo.ASCENDING)]) 

     return {'results': [dict([(k,v) if k!='_id' else ('id',v) for k,v in item.items()]) for item in notes], 
       'total': notes.count()} 

Я не мог понять e из-за отсутствия подробностей в ошибке. /Thanks

+0

Я настоятельно рекомендую использовать TastyPie над Поршень: http://tastypieapi.org/ – Brandon

+0

Я не могу использовать tastypieapi по какой-либо причине. Это должен быть поршень. – tank

ответ

0

Я исправил проблему. Проблема была здесь:

def read(self, request, id=None): 

Удален ID = None и заказаны шаблоны URL-адреса, так что она идет к правому обработчику.

urlpatterns = patterns('', 
    url(r'^search/$', search_resource), 
    url(r'^(?P<id>.*)$', annotation_resource), 
}