2017-02-07 2 views
0

Ich habe ein Modell:Wie funktioniert die Django-Aggregation mit Fremdschlüssel?

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() 

Ich konnte nicht verstehen, wie die folgende Code Arbeit enter image description here

Die von der django offiziellen Dokumentation ist in dem Spickzettel. https://docs.djangoproject.com/en/1.10/topics/db/aggregation/

Was ich versuche, die Gesamtstimmenzahl für das folgende Modell zu tun ist, zählt ich Question.objects.filter(owner_id=1).annotate(total_votes=Sum('votes')) wie in der Dokumentation verwendet werden. Aber das funktioniert nicht für mich.

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) 

Antwort

0

Ihre Frage Modell nicht Stimmen Modell Ihrer Wahl hat hat

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