我是Python方面Django的新手。我有一个名为“corr_end”的python Django项目,其中有一个名为“send_values”的应用程序
我编写了一个序列化程序,试图使get/put/post/delete方法可用,并完成Postman测试
当我尝试get方法时,它在Postman中不起作用,并给我一个错误
我非常感谢你在这方面的帮助。多谢各位
网址:http://127.0.0.1:8000/values/dinos
来自终端的错误:
来自终端的错误:
内部服务器错误:/values/dinos TypeError:\uuuu init\uuuuuu()接受1个位置参数,但提供了2个 [19/Mar/2020 07:02:00]“GET/values/dinos HTTP/1.1”500 63860
回溯(最近一次呼叫最后一次): 文件“[redact]/anaconda3/envs/chipseq/lib/python3.6/site packages/django/core/handlers/exception.py”,第34行,在内部 响应=获取响应(请求) 文件“[redacted]/anaconda3/envs/chipseq/lib/python3.6/site packages/django/core/handlers/base.py”,第115行,在“获取”响应中 response=self.process\u异常\u由\u中间件(e,请求) 文件“[redacted]/anaconda3/envs/chipseq/lib/python3.6/site packages/django/core/handlers/base.py”,第113行,在“获取”响应中 response=wrapped\u callback(请求,*callback\u args,**callback\u kwargs)
我在send_values目录下创建了一个Python包“api”,其中send_values_api.py包含序列化程序
from rest_framework.exceptions import ValidationError
from rest_framework.serializers import ModelSerializer
from rest_framework.viewsets import ModelViewSet
from ..models import Dinosaur
class DinoSerializer(ModelSerializer):
class Meta:
model = Dinosaur
fields = ['name', 'age', 'species']
def validate(self, userData):
if not userData['name']:
print('name is required')
return ValidationError
return userData
def create(self, userData):
newDinosaur = Dinosaur.objects.create(**userData)
newDinosaur.save()
return newDinosaur
def update(self, existingDinosaur, userData):
fields = ['name', 'age', 'species']
for i in fields:
fieldValue = userData.get(i, getattr(existingDinosaur, i))
setattr(existingDinosaur, i, fieldValue)
existingDinosaur.save()
return existingDinosaur
class DinoViewSet(ModelViewSet):
serializer_class = DinoSerializer
http_method_names = ['get', 'post', 'put', 'delete', 'options']
queryset = Dinosaur.objects.all()
models.py文件:
from django.db import models
from django.utils import timezone
# Create your models here.
class Correlations(models.Model):
message = models.CharField(max_length=100)
score = models.TextField()
executed = models.CharField(max_length=100)
created_at = models.DateTimeField(default=timezone.now)
class Dinosaur(models.Model):
age = models.PositiveIntegerField()
species = models.TextField()
name = models.CharField(max_length=50)
def __str__(self):
return self.name
发送值中的url.py:
from .api.send_values_api import DinoViewSet
from django.conf.urls import url
urlpatterns = [
url('dinos', DinoViewSet),
]
注意:views.py文件中没有代码
^{} 与} :
Views
不同。不能像视图那样直接将它们添加到URL。这里最简单的解决方案是像这样使用^{相关问题 更多 >
编程相关推荐