Django AttributeError:模块对象没有属性' PersonsList'

时间:2015-07-23 17:57:39

标签: python json django http django-class-based-views

我正在使用Django休息框架教程开发Web应用程序。我正在尝试使用开发服务器在项目站点上加载JSON数据。但是,每次我转到该地址时,它都会返回一个HTTP 500错误,其中包含一个AttributeError:' module'对象没有属性' PersonsList'

我按照整个教程,编辑了网址并查看了py文件很多次,但我一直得到同样的错误。有关如何解决此问题的任何建议吗?

这是我的代码。

urls.py

from django.conf.urls import patterns, url
from pros import views

urlpatterns = patterns ('',
    url(r'^pros/$', views.PersonsList.as_view(), name='PersonsList')

    )

models.py

from django.db import models

# Create a "Persons" class to add new input field datatypes 
class Persons(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    title = models.CharField(max_length=100, blank=True, default='')
    code = models.TextField()
    linenos = models.BooleanField(default=False)
    language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100)
    style  = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100)


class Meta:
    ordering = ('created',)

serializers.py

from django.forms import widgets
from rest_framework import serializers
from persons.models import Persons, LANGUAGE_CHOICES, STYLE_CHOICES


class PersonsSerializer(serializers.Serializer):
    pk = serializers.IntegerField(read_only=True)
    title = serializers.CharField(required=False, allow_blank=True, max_length=100)
    code = serializers.CharField(style={'base_template': 'textarea.html'})
    linenos = serializers.BooleanField(required=False)
    language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, default='python')
    style = serializers.ChoiceField(choices=STYLE_CHOICES, default='friendly')


    def create(self, validated_data):
        """
        Create and return a new 'Persons' instance, given the validated data.
        """
        return Persons.objects.create(**validated_data)


    def update(self, instance, validated_data):
        """
        Update and return an existing 'Persons' instance, given the validated data.
        """
        instance.title = validated_data.get('title', instance.title)
        instance.code = validated_data.get('code', instance.code)
        instance.linenos = validated_data.get('linenos', instance.linenos)
        instance.language = validated_data.get('language', instance.language)
        instance.style = validated_data.get('style', instance.style)
        instance.save()
        return instance

views.py

from pros.models import Persons
from pros.serializers import PersonsSerializer
from django.http import Http404 
from django.http import HttpResponse
from rest_framework.views import APIView 
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from rest_framework import mixins
from rest_framework import generics



class PersonsList (mixins.ListModelMixin,
                   mixins.CreateModelMixin,
                   mixins.DestroyModelMixin,
                   generics.GenericAPIView):
    queryset = Persons.objects.all()
    serializer_class = PersonsSerializer

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)


class PersonsDetail (mixins.RetrieveModleMixin,
                     mixins. UpdateModelMixin,
                     mixins.DestroyModelMixin,
                     generics.GenericAPIView):
    queryset = Persons.objects.all()
    serializer_class = PersonsSerializer


def get(self, request, *args, **kwargs):
    return self.retrieve(request, *args, **kwargs)

def put(self, request, *args, **kwargs):
    return self.update(request, *args, **kwargs)

def delete(self, request, *args, **kwargs):
    return self.destroy(request, *args, **kwargs)


@api_view(['GET', 'POST'])
def persons_list(request):
    def persons_list(request, format=None):
        """List all persons, or create a new person
        """

    if request.method == 'GET':
        persons = Persons.objects.all()
        serializer = PersonsSerializer(persons, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = PersonsSerializer(data=request.data)
    if serializer.is_valid():
            serializer.save()
            return Response(serializer.data status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

directorystructure.txt

0 个答案:

没有答案