Django 如何制作';获取';依赖于另一个模式的视图';s主键
我有一个Django Rest API,上面有多个项目,我希望能够显示给定项目的评论,我已经设置了评论模型和评论“POST”视图,评论在Django管理页面中显示得很好,现在我需要的是根据项目的主键为评论创建一个“GET”视图(我在前端使用React,但我认为这不相关) views.pyDjango 如何制作';获取';依赖于另一个模式的视图';s主键,django,django-rest-framework,Django,Django Rest Framework,我有一个Django Rest API,上面有多个项目,我希望能够显示给定项目的评论,我已经设置了评论模型和评论“POST”视图,评论在Django管理页面中显示得很好,现在我需要的是根据项目的主键为评论创建一个“GET”视图(我在前端使用React,但我认为这不相关) views.py @api_view(['GET', 'POST']) def item_detail(request,pk): try: item_detail = items.objects.get
@api_view(['GET', 'POST'])
def item_detail(request,pk):
try:
item_detail = items.objects.get(pk=pk)
except item_detail.DoesNotExist:
return Response({'message': 'The Item does not exist'}, status=status.HTTP_404_NOT_FOUND)
if request.method == 'GET':
item_serializer = itemsSerializer(item_detail)
return Response(item_serializer.data)
elif request.method == 'POST':
permission_classes = (IsAuthenticated,)
parser_classes = [MultiPartParser, FormParser]
new_Review = None
serializer = NewReviewSerializer(data=request.POST)
if serializer.is_valid():
# Assign the current item to the Review
new_Review = serializer.save(item=item_detail)
# Save the Review to the database
new_Review.save()
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@api_view(['GET'])
def ReviewsView(request,pk):
??????
models.py
class Review(models.Model):
item = models.ForeignKey(items, related_name='Reviews', on_delete=models.CASCADE)
name = models.CharField(max_length=100)
email = models.EmailField()
body = models.TextField()
date = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=False)
class Meta:
ordering = ['date']
def __str__(self):
return 'Review of ({}): {} by {}'.format(self.item, self.body, self.name)
我建议您使用嵌套路由。请看另一个类似的问题: