Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何制作';获取';依赖于另一个模式的视图';s主键_Django_Django Rest Framework - Fatal编程技术网

Django 如何制作';获取';依赖于另一个模式的视图';s主键

Django 如何制作';获取';依赖于另一个模式的视图';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

我有一个Django Rest API,上面有多个项目,我希望能够显示给定项目的评论,我已经设置了评论模型和评论“POST”视图,评论在Django管理页面中显示得很好,现在我需要的是根据项目的主键为评论创建一个“GET”视图(我在前端使用React,但我认为这不相关)

views.py

@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)

我建议您使用嵌套路由。请看另一个类似的问题: