Я занимаюсь разработкой веб-API с использованием инфраструктуры Django REST.Я новичок в Django и Python.Сейчас у меня проблема в том, что я не могу вернуть класс сериализатора.
Это структура моего проекта
Я создал быстрый запуск/serializers.py со следующим определением
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'groups')
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ('url', 'name')
Это мое определение для быстрого старта / views.py
from django.shortcuts import render
# Create your views here.
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from quickstart.serializers import UserSerializer, GroupSerializer
class UserViewSet (viewsets.ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
Это определение для быстрого старта / urls.py
from django.urls import path
from quickstart import views
urlpatterns = [
path('users/', views.UserViewSet)
]
Это urls.py внутри второй красной папки
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include
from quickstart import views
from rest_framework import routers
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('quickstart.urls'))
]
Когда я получаю доступ к этому URL (http://127.0.0.1:9191/users/) в браузере, я получаю эту ошибку.
TypeError at /users/
__init__() takes 1 positional argument but 2 were given
Request Method: GET
Request URL: http://127.0.0.1:9191/users/
Django Version: 2.1.2
Exception Type: TypeError
Exception Value:
__init__() takes 1 positional argument but 2 were given
Exception Location: C:\Users\Acer\PycharmProjects\MementoDjango\venv\lib\site-packages\django\core\handlers\base.py in _get_response, line 124
Python Executable: C:\Users\Acer\PycharmProjects\MementoDjango\venv\Scripts\python.exe
Python Version: 3.6.5
Python Path:
['C:\\Users\\Acer\\PycharmProjects\\MementoDjango',
'C:\\Users\\Acer\\PycharmProjects\\MementoDjango\\venv\\Scripts\\python36.zip',
'C:\\Users\\Acer\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs',
'C:\\Users\\Acer\\AppData\\Local\\Programs\\Python\\Python36-32\\lib',
'C:\\Users\\Acer\\AppData\\Local\\Programs\\Python\\Python36-32',
'C:\\Users\\Acer\\PycharmProjects\\MementoDjango\\venv',
'C:\\Users\\Acer\\PycharmProjects\\MementoDjango\\venv\\lib\\site-packages',
'C:\\Users\\Acer\\PycharmProjects\\MementoDjango\\venv\\lib\\site-packages\\setuptools-39.1.0-py3.6.egg',
'C:\\Users\\Acer\\PycharmProjects\\MementoDjango\\venv\\lib\\site-packages\\pip-10.0.1-py3.6.egg']
Server time: Sat, 13 Oct 2018 20:33:23 +0000
Как это исправить?