我正在尝试获取属于特定产品的评论。所以假设我从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
然后它给出正确的输出
所以我觉得序列化可能会有一些错误,请帮助我,告诉我我做错了什么?