Как я могу обработать ошибку 400 bad request error с помощью DRF в Django
Я пытаюсь выполнить POST запрос с помощью DRF в Django, программа выдает ошибку 400 (это ошибка, Bad Request: /api/menu_items/, фронтенд выдает следующую ошибку (This field is required), проблема в том, что я не могу увидеть точное поле, которое отсутствует. Как я могу найти недостающее поле? Ошибка возникает, когда я пытаюсь опубликовать новый пункт меню.
** Это модель места **
# Place models
class Place(models.Model):
# When User is deleted the Place gets deleted too
owner = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
image = models.CharField(max_length=255)
number_of_tables = models.IntegerField(default=1)
def __str__(self):
return "{}/{}".format(self.owner.username, self.name)
**Это модель пункта меню **
class MenuItem(models.Model):
place = models.ForeignKey(Place, on_delete=models.CASCADE)
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name="menu_items")
name = models.CharField(max_length=255)
description = models.TextField(blank=True)
price = models.IntegerField(default=0,)
image = models.CharField(max_length=255)
is_available = models.BooleanField(default=True)
def __str__(self):
return "{}/{}".format(self.category, self.name)
** Это сериализаторы ** * ошибка возникает в MenuItemSerializer *
from rest_framework import serializers
from . import models
class MenuItemSerializer(serializers.ModelSerializer):
class Meta:
model = models.MenuItem
fields = ('id', 'name', 'description', 'price', 'image', 'is_available', 'place', 'category')
class CategorySerializer(serializers.ModelSerializer):
menu_items = MenuItemSerializer(many=True, read_only=True)
class Meta:
model = models.Category
fields = ('id', 'name', 'menu_items', 'place')
class PlaceDetailSerializer(serializers.ModelSerializer):
categories = CategorySerializer(many=True, read_only=True)
class Meta:
model = models.Place
fields = ('id','name','image','number_of_tables','categories',)
class PlaceSerializer(serializers.ModelSerializer):
class Meta:
model = models.Place
fields = ('id', 'name', 'image')
** Это мнения **
from rest_framework import generics
from . import models, serializers, permissions
from django.core.exceptions import BadRequest
#Place Views
class PlaceList(generics.ListCreateAPIView):
serializer_class = serializers.PlaceSerializer
# Filtering content
def get_queryset(self):
return models.Place.objects.filter(owner_id=self.request.user.id)
# Only the user of a place can make changes
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
class PlaceDetail(generics.RetrieveUpdateDestroyAPIView):
permission_classes = [permissions.IsOwnerOrReadOnly] #passing permissions
serializer_class = serializers.PlaceDetailSerializer
queryset = models.Place.objects.all()
# Category List
class CategoryList(generics.CreateAPIView):
permission_classes = [permissions.PlaceOwnerOrReadOnly]
serializer_class = serializers.CategorySerializer
# Category Details
#No direct relation between Place and Category
class CategoryDetail(generics.UpdateAPIView, generics.DestroyAPIView):
serializer_class = serializers.CategorySerializer
queryset = models.Place.objects.all()
# Menu Items
class MenuItemList(generics.CreateAPIView):
serializer_class = serializers.MenuItemSerializer
permission_classes = [permissions.PlaceOwnerOrReadOnly]
# Menu Item Details
class MenuItemDetail(generics.UpdateAPIView, generics.DestroyAPIView):
permission_classes = [permissions.PlaceOwnerOrReadOnly]
serializer_class = serializers.MenuItemSerializer
queryset = models.MenuItem.objects.all()
** Это код пользовательского интерфейса для формы меню **
Я разобрался с ошибкой, я не передавал правильные значения в функцию useState().