django - ImproperlyConfigured at / Could not resolve URL for hyperlinked relationship using view name "classname-detail" -
serializers.py:
from django.forms import widgets rest_framework import serializers .models import classname, sectionname, teachername, attendancename django.contrib.auth.models import user class classserializer(serializers.hyperlinkedmodelserializer): #once add hyperlinked raises above exception. class meta: model = classname fields = ('url', 'class_name',) class sectionserializer(serializers.hyperlinkedmodelserializer): class meta: model = sectionname fields = ('url', 'class_name', 'section_name') class teacherserializer(serializers.hyperlinkedmodelserializer): class meta: model = teachername fields = ('url', 'classname', 'secname', 'teachname') class attendanceserializer(serializers.hyperlinkedmodelserializer): class meta: model = attendancename fields = ('url', 'teacher_name', 'date', 'intime', 'outtime') urls.py:
from django.conf.urls import url, patterns . import views urlpatterns = [ #drf urls start here... url(r'^$', views.api_root), #url(r'^users/$', views.userlist.as_view(), name='user-list'), #url(r'^users/(?p<pk>[0-9]+)/$', views.userdetail.as_view(), name='user-detail'), url(r'^class/$', views.classlist.as_view(), name='classname-list'), url(r'^class/(?p<pk>[0-9]+)/$', views.classdetail.as_view(), name='classname-detail'), url(r'^section/$', views.sectionlist.as_view(), name='sectionname-list'), url(r'^section/(?p<pk>[0-9]+)/$', views.sectiondetail.as_view(), name='sectionname-detail'), url(r'^teach/$', views.teacherlist.as_view(), name='teachername-list'), url(r'^teach/(?p<pk>[0-9]+)/$', views.teacherdetail.as_view(), name='teachername-detail'), url(r'^attend/$', views.attendancelist.as_view(), name='attendance-list'), url(r'^attend/(?p<pk>[0-9]+)/$', views.attendancedetail.as_view(), name='attendance-detail'), ]
views.py:
from django.contrib.auth.models import user .models import classname, sectionname, teachername, attendancename rest_framework import generics rest_framework.reverse import reverse rest_framework.response import response rest_framework.decorators import api_view .serializers import classserializer, sectionserializer, teacherserializer, attendanceserializer rest_framework.permissions import isauthenticatedorreadonly @api_view(('get',)) def api_root(request, format=none): return response({ 'class':reverse('student:classname-list', request=request, format=format), 'section':reverse('student:sectionname-list', request=request, format=format), 'teacher':reverse('student:teachername-list', request=request, format=format), 'attendance':reverse('student:attendancename-list', request=request, format=format) }) class classnamelist(generics.listcreateapiview): queryset = classname.objects.all() serializer_class = classserializer permission_classes = (isauthenticatedorreadonly,) class classnamedetail(generics.retrieveupdatedestroyapiview): queryset = classname.objects.all() serializer_class = classserializer permission_classes = (isauthenticatedorreadonly,) class sectionnamelist(generics.listcreateapiview): queryset = sectionname.objects.all() serializer_class = sectionserializer permission_classes = (isauthenticatedorreadonly,) class sectionnamedetail(generics.retrieveupdatedestroyapiview): queryset = sectionname.objects.all() serializer_class = sectionserializer permission_classes = (isauthenticatedorreadonly,) class teachernamelist(generics.listcreateapiview): queryset = teachername.objects.all() serializer_class = teacherserializer permission_classes = (isauthenticatedorreadonly,) class teachernamedetail(generics.retrieveupdatedestroyapiview): queryset = teachername.objects.all() serializer_class = teacherserializer permission_classes = (isauthenticatedorreadonly,) class attendancenamelist(generics.listcreateapiview): queryset = attendancename.objects.all() serializer_class = attendanceserializer permission_classes = (isauthenticatedorreadonly,) class attendancenamedetail(generics.retrieveupdatedestroyapiview): queryset = attendancename.objects.all() serializer_class = attendanceserializer permission_classes = (isauthenticatedorreadonly,) my traceback:
environment: request method: request url: http://127.0.0.1:8000/stu/class/ django version: 1.8.3 python version: 3.4.3 installed applications: ('django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'student') installed middleware: ('django.contrib.sessions.middleware.sessionmiddleware', 'django.middleware.common.commonmiddleware', 'django.middleware.csrf.csrfviewmiddleware', 'django.contrib.auth.middleware.authenticationmiddleware', 'django.contrib.auth.middleware.sessionauthenticationmiddleware', 'django.contrib.messages.middleware.messagemiddleware', 'django.middleware.clickjacking.xframeoptionsmiddleware', 'django.middleware.security.securitymiddleware') traceback: file "c:\users\user\demo\venv\lib\site-packages\django\core\handlers\base.py" in get_response 132. response = wrapped_callback(request, *callback_args, **callback_kwargs) file "c:\users\user\demo\venv\lib\site-packages\django\views\decorators\csrf.py" in wrapped_view 58. return view_func(*args, **kwargs) file "c:\users\user\demo\venv\lib\site-packages\django\views\generic\base.py" in view 71. return self.dispatch(request, *args, **kwargs) file "c:\users\user\demo\venv\lib\site-packages\rest_framework\views.py" in dispatch 456. response = self.handle_exception(exc) file "c:\users\user\demo\venv\lib\site-packages\rest_framework\views.py" in dispatch 453. response = handler(request, *args, **kwargs) file "c:\users\user\demo\venv\lib\site-packages\rest_framework\generics.py" in 241. return self.list(request, *args, **kwargs) file "c:\users\user\demo\venv\lib\site-packages\rest_framework\mixins.py" in list 47. return response(serializer.data) file "c:\users\user\demo\venv\lib\site-packages\rest_framework\serializers.py" in data 622. ret = super(listserializer, self).data file "c:\users\user\demo\venv\lib\site-packages\rest_framework\serializers.py" in data 217. self._data = self.to_representation(self.instance) file "c:\users\user\demo\venv\lib\site-packages\rest_framework\serializers.py" in to_representation 572. self.child.to_representation(item) item in iterable file "c:\users\user\demo\venv\lib\site-packages\rest_framework\serializers.py" in <listcomp> 572. self.child.to_representation(item) item in iterable file "c:\users\user\demo\venv\lib\site-packages\rest_framework\serializers.py" in to_representation 439. ret[field.field_name] = field.to_representation(attribute) file "c:\users\user\demo\venv\lib\site-packages\rest_framework\relations.py" in to_representation 272. raise improperlyconfigured(msg % self.view_name) exception type: improperlyconfigured @ /stu/class/ exception value: not resolve url hyperlinked relationship using view name "classname-detail". may have failed include related model in api, or incorrectly configured `lookup_field` attribute on field. i'm following drf tutorial make demo app serializable. i've got problem when i'm trying add hyperlinked in serializers, throws above exception.
i don't know why so? follow proper url namespacing conventions.
please me resolve it.....
actually, problem project level urls. i've removed 'namespacing' argument project level url includes app 'url(r'^stu/$', include('student:app'))'. 'classname-detail' can't include implicitly 'namespacing' argument raises above exception.
Comments
Post a Comment