Django REST Framework получил ошибку сервера 500 - PullRequest
0 голосов
/ 22 апреля 2020

Я следовал за обучением в django -rest-framework быстрый старт

У меня есть два URL, а именно /users/ и /groups/

The group отлично работает:
enter image description here

, но user URL получает ошибку, подобную этой:
enter image description here

ошибка сервера 500

Я установил DEBUG на False, а затем добавил немного хоста к ALLOWED_HOST в settings.py:

DEBUG = False

ALLOWED_HOSTS = [
    '127.0.0.1',
    'localhost'
]

INSTALLED_APPS = [
    'rest_framework',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

my urls.py:

from django.contrib import admin
from django.urls import include, path
from rest_framework import routers
from django_rest.django_rest_app import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

это мой 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','group']
class GroupSerializer(serializers.HyperlinkedModelSerializer):
  class Meta:
    model = Group
    fields = ['url','name']

и это мой views.py:

from django.shortcuts import render
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from rest_framework import permissions
from django_rest.django_rest_app.serializers import UserSerializer, GroupSerializer

class UserViewSet(viewsets.ModelViewSet):
  """
  API endpoint that allows users to be viewed or edited.
  """
  queryset = User.objects.all().order_by('-date_joined')
  serializer_class = UserSerializer
  permission_classes = [permissions.IsAuthenticated]
class GroupViewSet(viewsets.ModelViewSet):
  """
  API endpoint that allows groups to be viewed or edited.
  """
  queryset = Group.objects.all()
  serializer_class = GroupSerializer
  permission_classes = [permissions.IsAuthenticated]



ОБНОВЛЕНИЕ

когда я снова установил DEBUG на True, я получил это:

Имя поля group недопустимо для модели User


Я все еще новичок, надеюсь, вы можете помочь
Спасибо.

1 Ответ

0 голосов
/ 22 апреля 2020

Вы допустили ошибку в UserSerializer классе

class UserSerializer(serializers.HyperlinkedModelSerializer):
  class Meta:
    model = User
    fields = ['url','username','email','group']

Пожалуйста, измените следующим образом

class UserSerializer(serializers.HyperlinkedModelSerializer):
  class Meta:
    model = User
    fields = ['url','username','email','groups']

нет поля с именем 'group' в User модели. Вместо этого это 'groups'.

...