gpt4 book ai didi

python - 无法导入名称 DurationField

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:28 29 4
gpt4 key购买 nike

我正在尝试运行一个使用 django rest 框架的应用程序。但是我收到导入错误“无法导入名称 DurationField”。我该如何解决此错误?

错误信息 enter image description here

View .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)

序列化器.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

最佳答案

从屏幕截图中,我可以看到您使用的是 Django 1.7。

Drf 导入的 DurationField 是在 Django 1.8 中引入的。

所以你必须升级你的 Django 才能让这个版本的 DRF 工作。

关于python - 无法导入名称 DurationField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38931987/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com