Форум сайта python.su
Добры день. Я решил написать пример мобильного api с версионностью, основанного на Django REST framework. Однако я новичек в Django, собственно как и в питоне.
Пример делался на основе описания из стекоферфлоу:
http://stackoverflow.com/questions/14269719/django-rest-framework-api-versioning
И выложен на гитхаб:
https://github.com/van2048/DRF_versioning
Однако при использовании url пространств имен начали выдаваться ошибки. Помогите плиз разобраться в чем проблема…
Офлайн
Здравствуйте. Какие именно ошибки и при каких действиях? Скопируйте их сюда.
Офлайн
При попытке зайти на по ссылке http://127.0.0.1:8000/app_drf/v1/ выдает ошибку “NoReverseMatch at /app_drf/v1/” с выводом лога
Reverse for ‘appdrfmodel-list’ with arguments ‘()’ and keyword arguments ‘{}’ not found. 0 pattern(s) tried:
Request Method: GET
Request URL: http://127.0.0.1:8000/app_drf/v1/
Django Version: 1.6.2
Exception Type: NoReverseMatch
Exception Value:
Reverse for ‘appdrfmodel-list’ with arguments ‘()’ and keyword arguments ‘{}’ not found. 0 pattern(s) tried:
Exception Location: /Library/Python/2.7/site-packages/django/core/urlresolvers.py in _reverse_with_prefix, line 429
Python Executable: /usr/bin/python
Python Version: 2.7.5
Python Path:
['/Users/Abradox/dj_sites/test_drf',
‘/Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg’,
‘/Library/Python/2.7/site-packages/South-0.8.4-py2.7.egg’,
‘/Library/Python/2.7/site-packages/MySQL_python-1.2.5-py2.7-macosx-10.9-intel.egg’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload’,
‘/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC’,
‘/Library/Python/2.7/site-packages’,
‘/Library/Python/2.7/site-packages/PIL’]
Server time: Tue, 6 May 2014 21:22:09 +0000
Офлайн
Содержимое файла urls.py проекта:
https://github.com/van2048/DRF_versioning/blob/master/test_drf/urls.py
Содержимое файла urls.py приложения app_drf:
https://github.com/van2048/DRF_versioning/blob/master/app_drf/urls.py
Содержимое файла urls.py приложения пространства имен v1: https://github.com/van2048/DRF_versioning/blob/master/app_drf/v1/urls.py
Офлайн
У вас там пытается произойти то, что обычно происходит при использовании DefaultRouter - пытается вывестись список урлов всех list view, прикрученных к роутеру. У вас имена урлов находятся внутри неймспейсов, поэтому найти урл с именем ‘appdrfmodel-list’ не представляется возможным. Есть у django rest framework такой недостаток - когда дело доходит до использования неймспейсов, начинаются подобные проблемы. Его разработчики знают об этом, но пока еще не исправили.
Офлайн