Django Rest Framework 断言错误:缺少 Meta.model 属性



我正在尝试使用Django框架实现Rest api。但是当我单击默认索引页面上的 url 时,它会在/languages/Class LanguageSerializer缺少meta.model属性时给我一个断言错误

我在更改 models.py 后进行了所有迁移,但它什么也没做

urls.py

from django.urls import path, include
from . import views
from rest_framework import routers
router = routers.DefaultRouter()
router.register('languages', views.LanguageView)
urlpatterns = [
    path('', include(router.urls))
]

models.py

from django.db import models
class Language(models.Model):
    name = models.CharField(max_length=50)
    paradigm = models.CharField(max_length=50)

serializers.py

from rest_framework import serializers
from .models import Language
class LanguageSerializer(serializers.ModelSerializer):
    class Meta:
        fields = ('id', 'name', 'paradigm')

views.py

from django.shortcuts import render
from rest_framework import viewsets
from .models import Language
from .serializers import LanguageSerializer
class LanguageView(viewsets.ModelViewSet):
    queryset = Language.objects.all()
    serializer_class = LanguageSerializer

我不知道我哪里出错了

您需要在序列化程序的 Meta 类中指定要序列化的模型,例如:

from rest_framework import serializers
from .models import Language
class LanguageSerializer(serializers.ModelSerializer):
    class Meta:
        model = Language  # specify the model
        fields = ('id', 'name', 'paradigm')

否则,序列化程序无法确定该模型的字段,以及如何序列化这些字段中的数据。

最新更新