Django Суммируйте все значения с отличным идентификатором ForeignKey и архивируйте их с полями из связанной таблицы - PullRequest
1 голос
/ 29 марта 2010

Я хотел бы выполнить что-то похожее на this (т.е. получить сумму различных сумм событий в таблице платежей, затем сгруппировать платежи по деталям событий и общей сумме денег, выплаченных за них. Также получить пользователей и что они заплатили за событие будет сделано) в Django, используя PostgreSQL.

Мои модели, как показано ниже:

class UserProfile(User):
    onames = models.CharField(max_length=30, blank=True)
    phoneNumber = models.CharField(max_length=15, blank=True)
    regNo = models.CharField(max_length=15)
    designation = models.CharField(max_length=3,choices=DESIGNATION_CHOICES, default='MEM')
    image = models.ImageField(max_length=100,upload_to='photos/%Y/%m/%d', blank=True, null=True, default='photos/2010/03/placeholder.jpg')
    course = models.CharField(max_length=30, blank=True, null=True)
    timezone = models.CharField(max_length=50, default='Africa/Nairobi')
    smsCom = models.BooleanField()
    mailCom = models.BooleanField()

class Payments(models.Model):
    username = models.ForeignKey(UserProfile, related_name='payer')
    receiptNo = models.CharField(max_length=30, primary_key=True)
    particulars = models.CharField(max_length=50)
    date = models.DateField(auto_now_add=True)
    amount = models.FloatField(max_length=99, blank=True)
    eventID = models.ForeignKey('events', null=True, blank=True)
    receiver = models.ForeignKey(UserProfile, related_name='receiver')
    deleted = models.BooleanField()

class events(models.Model):
    eventName  = models.CharField(max_length=100)
    eventID =  models.AutoField(primary_key=True)
    details = models.TextField()
    attendanceFee = models.FloatField(max_length=99)
    date = models.DateField()
    username = models.ManyToManyField(UserProfile, related_name='user')
    eventposter = models.ForeignKey(UserProfile, related_name='event_poster')
    deleted = models.BooleanField()

1 Ответ

0 голосов
/ 30 марта 2010

после некоторого взлома нерва решение было разделить запрос на 2, то есть один для группировки и суммирования, а другой для получения соответствующих значений.

Для группировки и суммирования см. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...