Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.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
Json 序列化django rest中的外键_Json_Django_Rest_Serialization_Django Rest Framework - Fatal编程技术网

Json 序列化django rest中的外键

Json 序列化django rest中的外键,json,django,rest,serialization,django-rest-framework,Json,Django,Rest,Serialization,Django Rest Framework,我试图获取属于特定产品的评论,所以假设我访问api中的数据 api/userreview/productname 使用此视图 @api_view(['GET', 'POST']) @permission_classes((IsAuthenticated,)) def product_userreview(request,productname): try: snippets = product_review.objects.filter(product_id__slug = prod

我试图获取属于特定产品的评论,所以假设我访问api中的数据

api/userreview/productname
使用此视图

@api_view(['GET', 'POST'])
@permission_classes((IsAuthenticated,))
def product_userreview(request,productname):

try:
    snippets = product_review.objects.filter(product_id__slug = productname)
except snippets.DoesNotExist:
    return Response(status=status.HTTP_404_NOT_FOUND)

if request.method == 'GET':
    serializer = productReviewSerializer(snippets)
    return Response(serializer.data)
这个班呢

class product_review(models.Model):
  product=models.ForeignKey('product',related_name='product_review',null=True,on_delete=models.SET_NULL)
  user=models.ForeignKey('UserProfile',related_name='user_review',null=True,on_delete=models.SET_NULL)
  rating=models.DecimalField(max_digits=2,decimal_places=1,null=True,blank=True,validators=[MaxValueValidator(5.0),MinValueValidator(0.0)])
  reviews=models.TextField(null=True,blank=True)
还有这个序列化程序

class productReviewSerializer(serializers.ModelSerializer):
    product = serializers.CharField(read_only='True')
    username = serializers.CharField(read_only='True')
    class Meta:
        model = product_review
        fields = ['product','username','rating','reviews']
所以当我运行它时,它只显示空白的
{}
json,但是当我替换

product\u id\uu slug=productname

评级为4级的

然后给出正确的输出


因此,我认为序列化程序中可能存在一些错误。请帮助我,并告诉我我做错了什么?

serializer=productReviewSerializer(snippets,many=True)你能解释一下这背后的逻辑吗………为什么它在两个相同类型的查询上表现不同?在运行
manage.py runserver
的同时,通过将原始sql查询打印到控制台,来了解它们。请参阅将SQL语句打印到控制台。