Django注释不为多对多字段提供值

时间:2019-07-15 12:14:26

标签: python django python-3.x

我写了一个views函数:

def get_lists(request,user_email):
    """Get all the lists made by user"""
    try:
        user_instance = MyUser.objects.get(email=user_email)
    except MyUser.DoesNotExist:
        return HttpResponse(json.dumps({'message':'User not found'}),status=404)

    if request.method == 'GET':


        influencers_list = UserInfluencerGroupList.objects.filter(user=user_instance).annotate(total_reach=Sum('influencers__followers'),total_engagement=Sum('influencers__avg_picture_engagement')).order_by('id')

        influencers_list = serializers.serialize('json',influencers_list, fields =['id','influencers','list_name','total_reach'], indent=2, use_natural_foreign_keys=True, use_natural_primary_keys=True)


        return HttpResponse(influencers_list,content_type='application/json',status=200)
    else:
        return HttpResponse(json.dumps({'message':'No lists found'}), status=400)

我想返回每个列表中所有影响者的追随者总数,以及他们的total_engagement。但是,在使用注释字段后,返回的json对象在每个列表中都没有跟随者总数或total_engagement。

如何使用注释显示每个列表中所有影响者的关注者总数及其total_engagement。

我的django模型如下:

class UserInfluencerGroupList(models.Model):
    list_name = models.CharField(max_length=255)
    influencers = models.ManyToManyField(Influencer, blank=True)
    user = models.ForeignKey(MyUser, on_delete = models.CASCADE)

0 个答案:

没有答案