Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.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 - Fatal编程技术网

Python 使用外键的django聚合是如何工作的?

Python 使用外键的django聚合是如何工作的?,python,django,Python,Django,我有一个模型: from django.db import models class Author(models.Model): name = models.CharField(max_length=100) age = models.IntegerField() class Publisher(models.Model): name = models.CharField(max_length=300) num_awards = models.IntegerF

我有一个模型:

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

class Publisher(models.Model):
    name = models.CharField(max_length=300)
    num_awards = models.IntegerField()

class Book(models.Model):
    name = models.CharField(max_length=300)
    pages = models.IntegerField()
    price = models.DecimalField(max_digits=10, decimal_places=2)
    rating = models.FloatField()
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    pubdate = models.DateField()

class Store(models.Model):
    name = models.CharField(max_length=300)
    books = models.ManyToManyField(Book)
    registered_users = models.PositiveIntegerField()
我无法理解下面的代码是如何工作的

这是django官方文件中的备忘单。

我想做的是计算以下模型的总票数 我使用
Question.objects.filter(owner\u id=1)。注释(total\u voces=Sum('voces'))
,如文档中所示。但这对我不起作用

class Question(models.Model):
    question_text = models.CharField('Question',max_length=200)
    pub_date = models.DateTimeField('date published')
    owner = models.ForeignKey(User,default=DEFAULT_USER_ID)

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

您的问题模型没有投票权您的选择模型有投票权

Question.objects.filter(owner_id=1).annotate(total_votes=Sum('choice__votes'))