两种模式用户(内置)和帖子:
class Post(models.Model):
post_date = models.DateTimeField(default=timezone.now)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, related_name='user_post')
post = models.CharField(max_length=100)
我希望有一个API端点,它可以返回发帖用户的百分比。
我一直在尝试使用注解和聚合,但是我得到的是每个用户的帖子总数,或者每个帖子的用户总数(这是一个......)。我如何才能得到唯一用户返回的帖子总数,除以user.count并返回?
我觉得我错过了一些愚蠢的东西,但我的大脑已经去mush盯着这个。
class PostParticipationAPIView(generics.ListAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
def get_queryset(self):
start_date = self.request.query_params.get('start_date')
end_date = self.request.query_params.get('end_date')
# How can I take something like this, divide it by User.objects.all().count() * 100, and assign it to something to return as the queryset?
queryset = Post.objects.filter(post_date__gte=start_date, post_date__lte=end_date).distinct('user').count()
return queryset
我的目标是以这样的终点结束:
{参与总数:九十七点三分)
谢谢你的指导。
BCBB公司
2条答案
按热度按时间yvfmudvl1#
像这样东西应该有用
kknvjkwl2#
我不认为使用djangos表单可以完全做到这一点,但是你可以使用表单来获得用户计数(包括帖子数和总数):