在django rest中序列化外键

时间:2015-04-17 19:07:07

标签: 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 = 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_id__slug = productname

rating = 4 然后它给出正确的输出

所以我觉得序列化可能会有一些错误,请帮助我,告诉我我做错了什么?

0 个答案:

没有答案