Ошибка Джанго поршень не найден

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

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()}

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


person tank    schedule 30.04.2013    source источник
comment
Я настоятельно рекомендую использовать TastyPie вместо Piston: tastypieapi.org   -  person Brandon    schedule 30.04.2013
comment
Я не могу использовать deliciouspieapi по определенной причине. Это должен быть поршень.   -  person tank    schedule 01.05.2013


Ответы (1)


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

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

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

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