2016-08-13 9 views
1

django rest framework을 사용하는 응용 프로그램을 실행하려고합니다. "가져올 수없는 DurationField"가져 오기 오류가 발생합니다.이 오류를 어떻게 해결합니까?이름을 가져올 수 없습니다. DurationField

오류 메시지 enter image description here

Views.py

from django.shortcuts import render 
from django.contrib.auth.models import User 
from django.http import Http404 

from restapp.serializers import UserSerializer 
from rest_framework.views import APIView 
from rest_framework.response import Response 
from rest_framework import status 


class UserList(APIView): 

#List all user,create new one 
def get(self,request,format=None): 
    users = User.objects.all() 
    serializer = UserSerializer(users,many=True) 
    return Response(serializer.data) 

def post(self,request,format=None): 
    serializer= UserSerializer(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) 

def delete(self,request,pk, format=None): 
    user = self.get_object(pk) 
    user.delete() 
    return Response(status=status.HTTP_204_NO_CONTENT) 

class UserDetail(APIView): 

#Retrive update,or delete a user instance 

def get_object(self,pk): 
    try: 
     return User.objects.get(pk=pk) 
    except user.DoesNotExist: 
     raise 404 

def get(self,request,pk,format=None): 
    user = self.get_object(pk) 
    user = UserSerializer(user) 
    return Response(user.data) 

def put(self,request,pk,format=None): 
    user = self.get_object(pk) 
    serializer=UserSerializer(user,data = request.DATA) 
    if serializer.is_valid(): 
     serializer.save() 
     return Response(serializer.data) 
    return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST) 


def delete(self,request,pk,format=None): 
    user = self.get_object(pk) 
    user.delete() 
    return Response(status=status.HTTP_204_NO_CONTENT) 

serializers.py

from django.contrib.auth.models import User 
from rest_framework import serializers 

class UserSerializer(serializers.ModelSerializer): 
    class Meta: 
    model = User 
    fields = ('id','username','firstname','last_name','email') 

그것은 오류의 소스로이 파일 serializers.py, 라인 (18)를 가리 킵니다.

스크린 샷에서

enter image description here

+2

어디에서 DurationField를 사용 했습니까? 코드에서 찾을 수 없습니다. – masnun

+1

django rest 프레임 워크와 함께 제공되는 파일 (serializers.py, line 18)을 가리 킵니다. sceenshot을 추가했습니다. – brxy

답변

5

, 난 당신이 장고 1.7을 사용하고 볼 수 있습니다.

DRF에서 가져 오는 DurationField은 Django 1.8에서 소개되었습니다.

그래서이 DRF 버전을 사용하려면 장고를 업그레이드해야합니다.

관련 문제