2016-08-13 11 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、18行目)を指しています。私はsceenshotを追加しました。 – brxy

答えて

5

、私はあなたがDjangoの1.7を使用している見ることができます。

DRFによってインポートされているDurationFieldがDjango 1.8で導入されました。

このバージョンのDRFを動作させるには、Djangoをアップグレードする必要があります。

関連する問題