Skip to content

Instantly share code, notes, and snippets.

@cacheleocode
Last active August 29, 2015 14:17
Show Gist options
  • Select an option

  • Save cacheleocode/c0bcc52420e455e29bf8 to your computer and use it in GitHub Desktop.

Select an option

Save cacheleocode/c0bcc52420e455e29bf8 to your computer and use it in GitHub Desktop.
series and article link
#serieses = Series.objects.filter(reduce(operator.and_, filter_list)).exclude(reduce(operator.or_, exclude_list)).annotate(latest_article_publish_date=Max('article__publish_date')).extra(select={'selected_language': "articles_series.title_%s <> ''" % (lang)}).order_by('-selected_language', order_by)[:limit]
#serieses = Series.objects.filter(reduce(operator.and_, filter_list)).exclude(reduce(operator.or_, exclude_list)).annotate(latest_article_publish_date=Max('article__publish_date')).extra(select={'article_selected_language': "articles_article.title_%s <> ''" % (lang)}).distinct().order_by('-article_selected_language', order_by)[:limit]
#serieses = Series.objects.filter(reduce(operator.and_, filter_list)).exclude(reduce(operator.or_, exclude_list))[:limit]
#serieses = Series.objects.filter(published__exact=True).extra(select={'selected_language': "articles_series.title_%s <> ''" % (lang)}).extra(select={'latest_article_publish_date': 'SELECT articles_article.publish_date FROM articles_article WHERE articles_article.series_id = articles_series.id AND articles_article.published = True AND articles_article.publish_date <= now() ORDER BY (articles_article.title_es <> \'\') DESC, articles_article.publish_date DESC LIMIT 1'}).order_by('-selected_language', order_by)[:limit]
# works, but not dynamic
#serieses = Series.objects.filter(published__exact=True).extra(select={'selected_language': "articles_series.title_%s <> ''" % (lang)}).extra(select={'latest_article_publish_date': 'SELECT articles_article.publish_date FROM articles_article WHERE articles_article.series_id = articles_series.id AND articles_article.published = True AND articles_article.publish_date <= now() ORDER BY (articles_article.title_es <> \'\') DESC, articles_article.publish_date DESC LIMIT 1'}).order_by('-selected_language', order_by)[:limit]
"""
SELECT (articles_article.title_en <> ''), articles_article.publish_date FROM articles_article WHERE articles_article.series_id = 181 AND articles_article.published = True AND articles_article.publish_date <= now() ORDER BY (articles_article.title_en <> '') DESC, articles_article.publish_date DESC LIMIT 5
SELECT articles_article.publish_date FROM articles_article WHERE articles_article.series_id = 83 AND articles_article.published = True AND articles_article.publish_date <= now() ORDER BY (articles_article.title_pt <> '') DESC, articles_article.publish_date ASC LIMIT 1
# works!!!!!
SELECT articles_article.title_en, articles_article.publish_date FROM articles_article WHERE articles_article.series_id = 83 AND articles_article.published = True AND articles_article.publish_date <= now() ORDER BY (articles_article.title_en <> '') DESC, articles_article.publish_date ASC LIMIT 40
SELECT articles_article.title_es, articles_article.publish_date FROM articles_article WHERE articles_article.series_id = 181 AND articles_article.published = True AND articles_article.publish_date <= now() AND articles_article.title_es <> '' AND articles_article.title_es IS NOT NULL ORDER BY articles_article.publish_date ASC LIMIT 1
SELECT articles_article.title_en, articles_article.publish_date FROM articles_article WHERE articles_article.series_id = 83 AND articles_article.published = True AND articles_article.publish_date <= now() AND articles_article.title_en <> '' AND articles_article.title_en IS NOT NULL ORDER BY articles_article.publish_date ASC LIMIT 1
"""
# works!!!
# SELECT articles_article.publish_date FROM articles_article WHERE articles_article.series_id = 152 AND articles_article.published = True AND articles_article.publish_date <= now() ORDER BY (articles_article.title_es <> '') DESC, articles_article.publish_date DESC LIMIT 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment