Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django REST框架错误-未定义名称_Python_Django_Django Rest Framework_Django Views - Fatal编程技术网

Python Django REST框架错误-未定义名称

Python Django REST框架错误-未定义名称,python,django,django-rest-framework,django-views,Python,Django,Django Rest Framework,Django Views,我有一个Django 2.2,它有两个应用程序-状态和更新: django_api | 地位 | 应用程序编程接口 | 更新 在django_api/url.py中: from django.contrib import admin from django.urls import include, path from updates.views import ( json_example_view, JsonCBV, JsonCBV2, Serialize

我有一个Django 2.2,它有两个应用程序-状态和更新:

django_api | 地位 | 应用程序编程接口 | 更新

在django_api/url.py中:

from django.contrib import admin
from django.urls import include, path

from updates.views import (
    json_example_view, 
    JsonCBV, 
    JsonCBV2, 
    SerializedListView, 
    SerializedDetailView
)

from status.api.views import 
StatusListSearchAPIView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/status/', status.api.urls),
    path('api/updates/', updates.api.urls),
from rest_framework import generics
from rest_framework.views import APIView 
from rest_framework.response import Response
from .serializers import StatusSerializer 
from status.models import Status

class StatusListSearchAPIView(APIView):
    permission_classes = []
    authentication_classes = []

    def get(self, request, format = None):
        qs = Status.objects.all()
        serializer = StatusSeralizer(qs, many = True)
        return Response(serializer.data)

    def post(self, request, format=None):
        qs = Status.objects.all()
        serializer = StatusSeralizer(qs, many = True)
        return Response(serializer.data)

class StatusAPIView(generics.ListAPIView):
    permission_classes = []
    authentication_classes = []
    queryset = Status.objects.all()
    serializer_class = StatusSeralizer

    def get_queryset(self):
        qs = Status.objects.all()
        query = self.request.GET.get('q')
            if query is not None: 
                qs = qs.filter(content_icontains = query)
            return qs 
from rest_framework import serializers
from django import forms
from status.models import Status

class StatusSerializer(serializers.ModelSerializer):
     class Meta: 
         model = Status
         fields = [
            'user',
            'content',
            'image']

     def validate_content(self, value):
         if len(value) > 10000:
             raise serializers.ValidationError("This is way too long.")
             return value

     def validate(self, data):
         content = data.get("content", None) 
         if content == "":
             content = None
         image = data.get("image", None)
         if content is None and image is None:
             raise serializers.ValidationError("content or image is required.")
        return data
from django.contrib import admin
from django.urls import path

from .views import StatusAPIView, StatusCreateAPIView


 urlpatterns = [
    path('/', StatusAPIView.as_view()),
    path('create/', StatusCreateAPIView.as_view()),
    ]
在django_api/status/api/views.py中:

from django.contrib import admin
from django.urls import include, path

from updates.views import (
    json_example_view, 
    JsonCBV, 
    JsonCBV2, 
    SerializedListView, 
    SerializedDetailView
)

from status.api.views import 
StatusListSearchAPIView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/status/', status.api.urls),
    path('api/updates/', updates.api.urls),
from rest_framework import generics
from rest_framework.views import APIView 
from rest_framework.response import Response
from .serializers import StatusSerializer 
from status.models import Status

class StatusListSearchAPIView(APIView):
    permission_classes = []
    authentication_classes = []

    def get(self, request, format = None):
        qs = Status.objects.all()
        serializer = StatusSeralizer(qs, many = True)
        return Response(serializer.data)

    def post(self, request, format=None):
        qs = Status.objects.all()
        serializer = StatusSeralizer(qs, many = True)
        return Response(serializer.data)

class StatusAPIView(generics.ListAPIView):
    permission_classes = []
    authentication_classes = []
    queryset = Status.objects.all()
    serializer_class = StatusSeralizer

    def get_queryset(self):
        qs = Status.objects.all()
        query = self.request.GET.get('q')
            if query is not None: 
                qs = qs.filter(content_icontains = query)
            return qs 
from rest_framework import serializers
from django import forms
from status.models import Status

class StatusSerializer(serializers.ModelSerializer):
     class Meta: 
         model = Status
         fields = [
            'user',
            'content',
            'image']

     def validate_content(self, value):
         if len(value) > 10000:
             raise serializers.ValidationError("This is way too long.")
             return value

     def validate(self, data):
         content = data.get("content", None) 
         if content == "":
             content = None
         image = data.get("image", None)
         if content is None and image is None:
             raise serializers.ValidationError("content or image is required.")
        return data
from django.contrib import admin
from django.urls import path

from .views import StatusAPIView, StatusCreateAPIView


 urlpatterns = [
    path('/', StatusAPIView.as_view()),
    path('create/', StatusCreateAPIView.as_view()),
    ]
在django_api/status/api/serializers.py中:

from django.contrib import admin
from django.urls import include, path

from updates.views import (
    json_example_view, 
    JsonCBV, 
    JsonCBV2, 
    SerializedListView, 
    SerializedDetailView
)

from status.api.views import 
StatusListSearchAPIView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/status/', status.api.urls),
    path('api/updates/', updates.api.urls),
from rest_framework import generics
from rest_framework.views import APIView 
from rest_framework.response import Response
from .serializers import StatusSerializer 
from status.models import Status

class StatusListSearchAPIView(APIView):
    permission_classes = []
    authentication_classes = []

    def get(self, request, format = None):
        qs = Status.objects.all()
        serializer = StatusSeralizer(qs, many = True)
        return Response(serializer.data)

    def post(self, request, format=None):
        qs = Status.objects.all()
        serializer = StatusSeralizer(qs, many = True)
        return Response(serializer.data)

class StatusAPIView(generics.ListAPIView):
    permission_classes = []
    authentication_classes = []
    queryset = Status.objects.all()
    serializer_class = StatusSeralizer

    def get_queryset(self):
        qs = Status.objects.all()
        query = self.request.GET.get('q')
            if query is not None: 
                qs = qs.filter(content_icontains = query)
            return qs 
from rest_framework import serializers
from django import forms
from status.models import Status

class StatusSerializer(serializers.ModelSerializer):
     class Meta: 
         model = Status
         fields = [
            'user',
            'content',
            'image']

     def validate_content(self, value):
         if len(value) > 10000:
             raise serializers.ValidationError("This is way too long.")
             return value

     def validate(self, data):
         content = data.get("content", None) 
         if content == "":
             content = None
         image = data.get("image", None)
         if content is None and image is None:
             raise serializers.ValidationError("content or image is required.")
        return data
from django.contrib import admin
from django.urls import path

from .views import StatusAPIView, StatusCreateAPIView


 urlpatterns = [
    path('/', StatusAPIView.as_view()),
    path('create/', StatusCreateAPIView.as_view()),
    ]
运行python manage.py runserver时,出现一个错误:

File "...\status\api\views.py", line 26, in StatusAPIView
serializer_class = StatusSeralizer
NameError: name 'StatusSeralizer' is not defined
已更新:如前所述,这是一个拼写错误。但是,在我导入status和从status.api导入URL后,出现以下错误:

...\urls.py", line 39, in <module>
path('api/status/', status.api.urls),
...File "C:\Users\fbagi\AppData\Roaming\Python\Python37\site- 
packages\django\urls\conf.py", line 73, in _path
raise TypeError('view must be a callable or a list/tuple in the case of 
include().')
TypeError: view must be a callable or a list/tuple in the case of 
include().
为什么会出现此错误?

这是一个打字错误:


您正在调用:StatusSerializer,但它是:StatusSerializer

我在您的视图文件中没有看到StatusCreateAPIView。你创建了这个视图吗?
尝试注释或删除
path('create/',StatusCreateAPIView.as_view()),
,看看是否仍有错误。

修复了它,但我发现了一个新错误:NameError:name“status”未定义。查看更新的问题。您是否尝试将
导入状态
添加到URL.py中?@kamilyrb收到一个新错误:“…\url.py”,第38行,路径('api/status/',status.api.url),AttributeError:module'status.api'没有属性'url'“您的状态模块中有
urls.py
文件吗?它位于status/api/urls.py下。当我导入它时,我得到了一个新的错误:TypeError:view必须是可调用的,或者是include()的列表/元组。好的,我发现了问题。如果要添加其他应用程序的URL,则必须使用类似这样的包含函数:
path('api/status',include('status.api.url'))
请尝试ir