尝试根据邮递员的要求将数据集作为表格返回

问题描述 投票:0回答:1

我想向邮递员索取所有书籍的表格作为退货,但我找不到办法做到这一点。非常感谢

这是我的书本模型:

class Book(models.Model):
    name = models.CharField(max_length=100)
    username = models.ForeignKey(User, on_delete=models.CASCADE)
    publication_date = models.DateField()
    publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
    description = models.TextField()

    def __str__(self):
        return self.name

这是我的观点:

class AddBookAPIView(APIView):
    renderer_classes = [TemplateHTMLRenderer]
    template_name = 'book.html'

    @method_decorator(login_required(login_url='login/'))
    def post(self, request):
        book_serializer = BookSerializer(data=request.data)
        if book_serializer.is_valid():
            book_serializer.save()
            return redirect('home')

        return Response({'message': book_serializer.errors})

    @method_decorator(login_required(login_url='login/'))
    def get(self, request):
        book = Book()
        serializer = BookSerializer(book)
        return Response({'serializer': serializer, 'book': book})
python django django-models django-views django-queryset
1个回答
0
投票

尝试在

many=True
中使用
BookSerializer
并使用
Book.objects.all()
检索
Book
的所有实例,如下所示:

class AddBookAPIView(APIView):
    renderer_classes = [TemplateHTMLRenderer]
    template_name = 'book.html'

    @method_decorator(login_required(login_url='login/'))
    def post(self, request):
        book_serializer = BookSerializer(data=request.data)
        if book_serializer.is_valid():
            book_serializer.save()
            return redirect('home')

        return Response({'message': book_serializer.errors})

    @method_decorator(login_required(login_url='login/'))
    def get(self, request):
        book = Book.objects.all()
        serializer = BookSerializer(book, many=True)
        return Response({'serializer': serializer, 'book': book})
© www.soinside.com 2019 - 2024. All rights reserved.