I am working with Django for a first time and I'm trying to build an API and I am following some tutorials and examples and it works right, but I am running the project now in a Raspberry Pi after install all the requirements and the project is failing with the following error:
Performing system checks... Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0xb547adb0> Traceback (most recent call last): File "/home/pi/.local/lib/python3.5/site-packages/django/utils/autoreload.py", line 225, in wrapper fn(*args, **kwargs) File "/home/pi/.local/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run self.check(display_num_errors=True) File "/home/pi/.local/lib/python3.5/site-packages/django/core/management/base.py", line 364, in check include_deployment_checks=include_deployment_checks, File "/home/pi/.local/lib/python3.5/site-packages/django/core/management/base.py", line 351, in _run_checks return checks.run_checks(**kwargs) File "/home/pi/.local/lib/python3.5/site-packages/django/core/checks/registry.py", line 73, in run_checks new_errors = check(app_configs=app_configs) File "/home/pi/.local/lib/python3.5/site-packages/django/core/checks/urls.py", line 13, in check_url_config return check_resolver(resolver) File "/home/pi/.local/lib/python3.5/site-packages/django/core/checks/urls.py", line 23, in check_resolver return check_method() File "/home/pi/.local/lib/python3.5/site-packages/django/urls/resolvers.py", line 397, in check for pattern in self.url_patterns: File "/home/pi/.local/lib/python3.5/site-packages/django/utils/functional.py", line 36, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/pi/.local/lib/python3.5/site-packages/django/urls/resolvers.py", line 536, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/home/pi/.local/lib/python3.5/site-packages/django/utils/functional.py", line 36, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/pi/.local/lib/python3.5/site-packages/django/urls/resolvers.py", line 529, in urlconf_module return import_module(self.urlconf_name) File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 986, in _gcd_import File "<frozen importlib._bootstrap>", line 969, in _find_and_load File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 673, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 673, in exec_module File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed File "/home/pi/Projects/openvpn-monitor/openvpnmonitor/urls.py", line 24, in <module> url(r'^api/', include('openvpnmonitor.api.urls')), File "/home/pi/.local/lib/python3.5/site-packages/django/urls/conf.py", line 34, in include urlconf_module = import_module(urlconf_module) File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 986, in _gcd_import File "<frozen importlib._bootstrap>", line 969, in _find_and_load File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 673, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 673, in exec_module File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed File "/home/pi/Projects/openvpn-monitor/openvpnmonitor/api/urls.py", line 16, in <module> urlpatterns += router.urls File "/home/pi/.local/lib/python3.5/site-packages/rest_framework/routers.py", line 101, in urls self._urls = self.get_urls() File "/home/pi/.local/lib/python3.5/site-packages/rest_framework/routers.py", line 363, in get_urls urls = super(DefaultRouter, self).get_urls() File "/home/pi/.local/lib/python3.5/site-packages/rest_framework/routers.py", line 261, in get_urls routes = self.get_routes(viewset) File "/home/pi/.local/lib/python3.5/site-packages/rest_framework/routers.py", line 176, in get_routes extra_actions = viewset.get_extra_actions() AttributeError: type object 'SessionViewSet' has no attribute 'get_extra_actions'
My views.py has the following code:
from django.shortcuts import render from rest_framework import viewsets from .models import Session from .serializers import SessionSerializer from rest_framework.views import APIView, Response class SessionViewSet(APIView): queryset = Session.objects.all() serializer_class = SessionSerializer def get(self, request, format=None): return Response("test")
I really don't know why is working on my laptop but it is not working on my Raspberry Pi.
Has this happened to someone or anyone knows why is happening this?
Thank you so much!
Edit:
Here is my urls.py
from django.conf.urls import url from rest_framework import routers from openvpnmonitor.api.views import SessionViewSet router = routers.DefaultRouter() router.register(r'sessions', SessionViewSet) urlpatterns = [ url(r'sessions', SessionViewSet.as_view()), url(r'^docs/', schema_view), ] urlpatterns += router.urls
You've called it a viewset, but that doesn't make it one; you inherit from APIView which is a standalone generic view, not a viewset.
A viewset needs to inherit from viewsets.ViewSet.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With