django, name 'IndexView' is not defined -
i following this tutorial. @ moment @ this point when start server python manage.py runserver 0.0.0.0:8000 , open url in browser, receive following error:
name 'indexview' not defined this urls.py
from django.conf.urls import include, url django.contrib import admin django.conf.urls import patterns rest_framework_nested import routers authentication.views import accountviewset router = routers.simplerouter() router.register(r'accounts', accountviewset) urlpatterns = patterns( '', url(r'^admin/', include(admin.site.urls)), url(r'^api/v1/', include(router.urls)), url('^.*$', indexview.as_view(), name='index'), ) i don't know how solve problem, since never saw myself declaring indexview somewhere. awesome if guys give me suggestions on one.
edit:
my views.py
from django.shortcuts import render # create views here. rest_framework import permissions, viewsets authentication.models import account authentication.permissions import isaccountowner authentication.serializers import accountserializer class accountviewset(viewsets.modelviewset): lookup_field = 'username' queryset = account.objects.all() serializer_class = accountserializer def get_permissions(self): if self.request.method in permissions.safe_methods: return (permissions.allowany(),) if self.request.method == 'post': return (permissions.allowany(),) return (permissions.isauthenticated(), isaccountowner(),) def create(self, request): serializer = self.serializer_class(data=request.data) if serializer.is_valid(): account.objects.create_user(**serializer.validated_data) return response(serializer.validated_data, status=status.http_201_created) return response({ 'status': 'bad request', 'message': 'account not created received data.' }, status = status.http_400_bad_request)
you have create indexview , import in urls.py. interpreter complains since in urls.py indexview unknown. create new view should create new class in views.py, like:
from django.views.generic.base import templateview class indexview(templateview): template_name = 'index.html' ps: please read official django docs, good!
Comments
Post a Comment