Я новичок в Django в Python. У меня есть python Django проект под названием «corr_end» с приложением в нем «send_values»
Я написал сериализатор, пытаясь сделать методы get / put / post / delete доступными и работая через Postman testing.
Когда я пытаюсь получить метод get, он не работает в Postman и выдает ошибку.
Я ценю любую помощь в этом. Спасибо.
URL: http://127.0.0.1: 8000 / values / dinos
Ошибка с терминала:
Ошибка с терминала:
Внутренняя ошибка сервера: / values / dinos TypeError: __init __ () принимает 1 позиционный аргумент, но задано 2 [19 / Mar / 2020 07:02:00] "GET / values / dinos HTTP / 1.1" 500 63860
Traceback (последний вызов был последним): файл "[отредактировано] /anaconda3/envs/chipseq/lib/python3.6/site-packages/django/core/handlers/ exception.py ", строка 34, во внутреннем файле ответа = get_response (запрос)" [отредактировано] /anaconda3/envs/chipseq/lib/python3.6/site-packages/django/core/handlers/base.py " строка 115 в файле _get_response response = self.process_exception_by_middleware (e, request) "[отредактировано] /anaconda3/envs/chipseq/lib/python3.6/site-packages/django/core/handlers/base.py" , строка 113, в _get_response response = wrapped_callback (запрос, * callback_args, ** callback_kwargs)
Я создал Python пакет 'api' в каталоге send_values с send_v alues_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
urls.py в send_values:
from .api.send_values_api import DinoViewSet
from django.conf.urls import url
urlpatterns = [
url('dinos', DinoViewSet),
]
Примечание. Код отсутствует в файле views.py.