как выполнить подсчет и вступить в Джанго? - PullRequest
1 голос
/ 15 октября 2010

как мне использовать модели для выполнения запроса на объединение и подсчет, как показано ниже:

select count(*),site_url from connection_ss 
   join site_ss on to_id_id = site_id 
        where site_ss.source_id = 1 group by site_url order by count desc

Вот мои модели:

class site(models.Model):
    site_id = models.AutoField(primary_key=True)
    site_url = models.URLField(unique=True)
    human_verified = models.BooleanField(default=False)
    last_entry2 = models.DateTimeField(default='2009-01-01')
    source_id = models.ForeignKey(source)
    author_alias = models.TextField()

class connection(models.Model):
    from_id = models.ForeignKey(site,related_name="from_get")
    to_id = models.ForeignKey(site,related_name = "to_get")

    class Meta:
        db_table = "connection_ss"
        unique_together = (("from_id","to_id"),)

1 Ответ

3 голосов
/ 15 октября 2010

То, что вы ищете, это Агрегация / аннотация .С объектом Count вы можете сделать что-то вроде этого:

Connection.objects.filter(site__to__source=1).annotate(Count('site_url')).order_by('-count')

Обратите внимание, что это не сработает, потому что я не совсем понял, какие объекты вы пытались получить, нонадеюсь, что это будет полезно в качестве руководства

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