Сбой ограничения NOT NULL: DJANGO Rest Framework
Я следую учебнику udemy, и все идет хорошо, пока я не пытаюсь сделать POST для создания статьи о базе данных.
Когда я отправляю POST на /api/posts
с Многочастная форма:
title: What is Java?
description: Java
order: 1
Я получаю ошибку:
NOT NULL constraint failed: posts_post.order
Я не могу найти решение для этой конкретной ситуации. Поэтому я предоставляю вам код моего:
models.py:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=255)
description = models.TextField()
order = models.IntegerField()
created_at = models.DateTimeField(auto_now_add=True)
serializers.py:
from rest_framework.serializers import ModelSerializer
from posts.models import Post
class PostSerializer(ModelSerializer):
class Meta:
model = Post
fields = ['title', 'description', 'created_at']
views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from posts.models import Post
from posts.api.serializers import PostSerializer
class PostApiView(APIView):
def get(self, request):
serializer = PostSerializer(Post.objects.all(), many=True)
return Response(status=status.HTTP_200_OK, data=serializer.data)
def post(self, request):
print(request.POST)
serializer = PostSerializer(data=request.POST)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(status=status.HTTP_200_OK, data=serializer.data)
Я могу правильно выполнить GET
запрос к моему api/posts
. Настоящая проблема заключается в запросе POST
, где я должен создать новую статью/пост
Поле order не включено в сериализатор. Вам необходимо добавить order
в fields
.
class PostSerializer(ModelSerializer):
class Meta:
model = Post
fields = ['title', 'description', 'order, 'created_at']
Вы используете ввод как title
, description
и order
, но в вашем serializer
вы не упомянули поле order
, поэтому вам нужно упомянуть поле order
в вашем serializer
class PostSerializer(ModelSerializer):
class Meta:
model = Post
fields = ['title', 'description', 'order, 'created_at']