在视图和模板中一切正常。当我做了序列化器,然后APIVIEW发生了错误的事情。 GET方法可以,但POST不是。当我尝试添加的食物,我得到IntegrityError这样的:(但在管理面板和图形用户界面,你可以与模型的问题必须与串行器添加的食用正常所以它不是问题)IntegrityError - 列不能为空DJANGO
IntegrityError在/ food_list_serializer/
列 '大卡' 不能为空
模型是这样的:
class Food(models.Model):
name = models.CharField(max_length=124)
kcal = models.FloatField()
proteins = models.FloatField()
carbs = models.FloatField()
fats = models.FloatField()
grams = models.FloatField(default=100, validators=[MinValueValidator(1)])
串行器:
class FoodSerializer(serializers.ModelSerializer):
class Meta:
model = Food
fields = '__all__'
浏览次数:
class FoodListSerializer(APIView):
def get(self, request, format=None):
food = Food.objects.all()
serializer = FoodSerializer(food, many=True, context={'request': request})
return Response(serializer.data)
def post(self, request):
food_create = Food.objects.create()
serializer = FoodSerializer(food_create, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
POST request in DJANGO rest framework looks like this
发布请求是什么样的?大卡是否被传递? –