我想向邮递员索取所有书籍的表格作为退货,但我找不到办法做到这一点。非常感谢
这是我的书本模型:
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})
尝试在
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})