Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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
Python 带有多个表的Django注释_Python_Django_Django Models - Fatal编程技术网

Python 带有多个表的Django注释

Python 带有多个表的Django注释,python,django,django-models,Python,Django,Django Models,鉴于模型: class Member(models.Model): first_name = models.CharField(max_length=200) last_name = models.CharField(max_length=200) class MemberAction(models.Model): member = models.ForeignKey(Member, on_delete=models.CASCADE) action = models.CharF

鉴于模型:

class Member(models.Model):
  first_name = models.CharField(max_length=200)
  last_name = models.CharField(max_length=200)

class MemberAction(models.Model):
  member = models.ForeignKey(Member, on_delete=models.CASCADE)
  action = models.CharField(max_length=200)
  datetime = models.DateTimeField()
  points = models.IntegerField()

class MemberMention(models.Model):
  member = models.ForeignKey(Member, on_delete=models.CASCADE)
  date = models.DateTimeField()
  points = models.IntegerField()
我希望在给定的一周内,获得MemberAction和MemberTitle积分组合最多的前五名会员。我还希望查询返回给定日期内成员的所有MemberAction行。你知道怎么做吗

我得到了下面的代码,但为
points\u action
返回的数字不正确。奇怪的是,当我删除
注释
调用
points\u news
时,它工作正常

def index(request):
    today = timezone.now()
    week_ago = today - timedelta(7)

    ma_w_dates = MemberAction.objects.filter(datetime__date__gte=week_ago,datetime__date__lte=today)
    mention_pts = Sum('membermention__points', filter=Q(membermention__date__date__gte=week_ago,membermention__date__date__lte=today))
    action_pts = Sum('memberaction__points', filter=Q(memberaction__datetime__date__gte=week_ago,memberaction__datetime__date__lte=today))
    members = Member.objects.annotate(points_actions=action_pts).annotate(points_news=mention_pts).order_by('-points_actions').prefetch_related(Prefetch('memberaction_set', queryset=ma_w_dates))[:5]

    context = {'members':members}
    return render(request, 'data/index__text.html', context)