In the last years, the castle theme had a big revival after several years of absence with the Lion's Knight Castle and 3-in-1 Medieval Castle from 2021. Like me, probably many of you who grew up with this theme think those sets are a fantastic walk down memory lane, and epic battles and sieges from the childhood bedroom come to mind.

Read More

City is cooking this year, and we're taking a look at another vehicle set: 60467-1 Heavy-Duty Recovery Tow Truck with Crane, which does not feature one, but two vehicles! A dump truck is in trouble, and a tow truck comes rushing to the scene. Chris Stamp, the new lead designer for City, said the team is focussing on world building in the recent waves, tying the sets together through a narrative.

Read More

Revisiting Jurassic World with Dolores the Aquilops. The latest in the recent series of small brick-built cute dinosaurs. I loved 76962-1 - Baby Bumpy so I hope this one is just as fun.

 

Read More

Happy New Year, it's the 1st of January again (well for me it is) and it's time for some statistics and review of what happened on Rebrickable over the last year.

According to Google Analytics, our traffic has increased over last year.

Read More

Like that High School friend you only see once a year and nobody really enjoys the experience...Here is Rebrickable's Top Ten Sets of 2025!

The team has grown, but has that made our list more acceptable to the masses? Only one way to find out, and don't forget to vote in the poll to let us know how well we did.

Read More

Welcome to Rebrickable's first ever Video Review. A video build alongside all the other great info regarding the set you expect to see in a Rebricakble review.

Wall-E hasn't had that many LEGO sets. His impact on pop culture has been pretty limited generally, but it's one of the three Pixar movies I struggle to decide between for my favourite (Toy Story and Up being the other two if you're curious). However he's just too adorable to be completely forgotten. My kids have never seen the movie (probably don't even know it exists) yet they know Wall-E and EVE just as well as Elsa and Anna.

Read More

A new year, a new addition to the Collectible Minifigure Series. After two licensed series with 71049 bringing repetitive F1 cars and 71050 crawling with amazing Spider-People, the CMF theme returns to its regular form with 71051 Series 28.

Read More

When our daughters were little they loved to collect stones they would find on our walks. I bought them a jar to collect these treasures, even though they were just regular rocks. And I always had to check the pockets before putting the clothes in the washing machine! When they grew up they discovered that there were more stones than those they found in the schoolyard or during a walk. The minerals they saw in museums held a magical allure.

Read More

The official set 76419 - Hogwarts Castle and Grounds from 2023 offered the chance to have a wonderful-looking Hogwarts Castle with a small need for space. Anyone struggling to find a place to display one of the bigger sets or even bigger MOCs probably cheered for this opportunity.

Read More

What do you like to do in your spare time? We love to visit old castles, especially on holidays. Some are completely restored and brought back to the old style and others are more like ruins. There is a grandeur to those buildings, and when you walk through them, you feel like you've stepped back in time. Our favorite one is in Vianden, which we’ve visited multiple times.

Read More
DJDT

Time

Resource usage

Resource Value
User CPU time 207.420 msec
System CPU time 2.606 msec
Total CPU time 210.026 msec
Elapsed time 225.569 msec
Context switches 152 voluntary, 2 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

SQL queries from 1 connection

  • default 17.99 ms (75 queries including 72 similar and 32 duplicates )
Query Timeline Time (ms) Action
SELECT COUNT(*) AS "__count"
  FROM
"blog_article"
 WHERE
"blog_article"."is_active"
SELECT ••• FROM "blog_article" WHERE "blog_article"."is_active"
0.36

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(69)
  articles = paginator.get_page(request.GET.get('page', 1))

/home/nathan/rb/site/./digg_paginator/utils.py in get_page(274)
  return self.page(page)

/home/nathan/rb/site/./digg_paginator/utils.py in page(199)
  page = super(DiggPaginator, self).page(number, *args, **kwargs)

/home/nathan/rb/site/./digg_paginator/utils.py in page(47)
  return super(ExPaginator, self).page(number)

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 646)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 646) LIMIT 21
8 similar queries.
0.22

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(72)
  article_series_images = get_series()

/home/nathan/rb/site/./blog/views.py in get_series(50)
  {'name': 'Designer Spotlights', 'tag': 'designer-spotlight', 'article': Article.objects.get(id=646)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 605)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 605) LIMIT 21
8 similar queries.
0.22

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(72)
  article_series_images = get_series()

/home/nathan/rb/site/./blog/views.py in get_series(51)
  {'name': 'Into the Archives', 'tag': 'into-the-archives', 'article': Article.objects.get(id=605)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 705)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 705) LIMIT 21
8 similar queries.
0.29

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(72)
  article_series_images = get_series()

/home/nathan/rb/site/./blog/views.py in get_series(52)
  {'name': 'Mini MOC Madness', 'tag': 'mini-moc-madness', 'article': Article.objects.get(id=705)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 616)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 616) LIMIT 21
8 similar queries.
0.22

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(72)
  article_series_images = get_series()

/home/nathan/rb/site/./blog/views.py in get_series(53)
  {'name': 'Is This LEGO?', 'tag': 'is-this-lego', 'article': Article.objects.get(id=616)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 279)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 279) LIMIT 21
8 similar queries.
0.21

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(72)
  article_series_images = get_series()

/home/nathan/rb/site/./blog/views.py in get_series(54)
  {'name': 'Rebricksberg', 'tag': 'rebricksberg', 'article': Article.objects.get(id=279)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 720)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 720) LIMIT 21
8 similar queries.
0.30

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(72)
  article_series_images = get_series()

/home/nathan/rb/site/./blog/views.py in get_series(55)
  {'name': 'New Set Releases', 'tag': 'sets', 'article': Article.objects.get(id=720)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 462)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 462) LIMIT 21
8 similar queries.
0.21

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(72)
  article_series_images = get_series()

/home/nathan/rb/site/./blog/views.py in get_series(56)
  {'name': 'Tips & Useful Info', 'tag': 'tips', 'article': Article.objects.get(id=462)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 249)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 249) LIMIT 21
8 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(72)
  article_series_images = get_series()

/home/nathan/rb/site/./blog/views.py in get_series(57)
  {'name': 'The Good, The Bad, & The Ugly', 'tag': 'good-bad-ugly', 'article': Article.objects.get(id=249)}

SELECT "countries_plus_country"."iso",
       "countries_plus_country"."iso3",
       "countries_plus_country"."iso_numeric",
       "countries_plus_country"."fips",
       "countries_plus_country"."name",
       "countries_plus_country"."capital",
       "countries_plus_country"."area",
       "countries_plus_country"."population",
       "countries_plus_country"."continent",
       "countries_plus_country"."tld",
       "countries_plus_country"."currency_code",
       "countries_plus_country"."currency_symbol",
       "countries_plus_country"."currency_name",
       "countries_plus_country"."phone",
       "countries_plus_country"."postal_code_format",
       "countries_plus_country"."postal_code_regex",
       "countries_plus_country"."languages",
       "countries_plus_country"."geonameid",
       "countries_plus_country"."neighbours",
       "countries_plus_country"."equivalent_fips_code"
  FROM
"countries_plus_country"
 WHERE
"countries_plus_country"."iso" = 'US'
 LIMIT
21
SELECT ••• FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21
0.14

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./rb/templatetags/rb_geo.py in geo_currency(20)
  geo_data = user.geo.get_user_currency()

/home/nathan/rb/site/./geo/geo.py in get_user_currency(252)
  country = Country.objects.get(iso=country_code)

412 </a>
413 </li>
414 <li class="hidden-xs">
415 {% geo_currency request.user %}
416 </li>
417 {% comment %}
418 <li class="hidden-xs hidden-sm">
419 <a href={% if request.user.is_authenticated %}"{% url 'user_profile_settings' request.user.get_username %}#personalisation"{% else %}"#" onclick="return false;"{% endif %} title="All date/times are being converted to this timezone">{% get_user_timezone request.user %}</a>

/home/nathan/rb/site/rb/templates/rb/base_root.html

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
"blog_article"."is_active"
 ORDER BY
"blog_article"."published_date" DESC
 LIMIT
10
SELECT ••• FROM "blog_article" WHERE "blog_article"."is_active" ORDER BY "blog_article"."published_date" DESC LIMIT 10
1.29

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

26 </div>
27 {% endif %}
28
29 {% for article in articles %}
30 <div class="mb-30">
31 <div class="">
32 {% include 'blog/includes/render_article_horizontal.html' %}
33 </div>

/home/nathan/rb/site/blog/templates/blog/blog_list.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 375158
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 375158 LIMIT 21
10 similar queries. Duplicated 2 times.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'Chricki'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'Chricki' LIMIT 21
10 similar queries. Duplicated 2 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 375158
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 375158 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries. Duplicated 2 times.
0.10

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
10 similar queries. Duplicated 8 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '891' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '891' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.43

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 891
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 891 LIMIT 21
10 similar queries.
0.11

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 17788
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 17788 LIMIT 21
10 similar queries. Duplicated 3 times.
0.10

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'TobyMac'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'TobyMac' LIMIT 21
10 similar queries. Duplicated 3 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 17788
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 17788 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries. Duplicated 3 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
10 similar queries. Duplicated 8 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '878' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '878' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.41

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 878
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 878 LIMIT 21
10 similar queries.
0.09

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 83025
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 83025 LIMIT 21
10 similar queries. Duplicated 3 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'jaredhinton'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'jaredhinton' LIMIT 21
10 similar queries. Duplicated 3 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 83025
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries. Duplicated 3 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
10 similar queries. Duplicated 8 times.
0.06

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '903' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '903' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.28

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 903
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 903 LIMIT 21
10 similar queries.
0.09

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 2
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 2 LIMIT 21
10 similar queries.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'Nathan'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'Nathan' LIMIT 21
10 similar queries.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 2
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 3
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 3 LIMIT 21
10 similar queries.
0.06

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '898' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '898' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.58

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 898
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 898 LIMIT 21
10 similar queries.
0.08

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 83025
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 83025 LIMIT 21
10 similar queries. Duplicated 3 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'jaredhinton'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'jaredhinton' LIMIT 21
10 similar queries. Duplicated 3 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 83025
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries. Duplicated 3 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 5
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 5 LIMIT 21
10 similar queries.
0.06

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '902' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '902' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.63

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 902
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 902 LIMIT 21
10 similar queries.
0.09

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 83025
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 83025 LIMIT 21
10 similar queries. Duplicated 3 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'jaredhinton'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'jaredhinton' LIMIT 21
10 similar queries. Duplicated 3 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 83025
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries. Duplicated 3 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
10 similar queries. Duplicated 8 times.
0.06

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '901' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '901' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.26

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 901
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 901 LIMIT 21
10 similar queries.
0.09

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 17788
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 17788 LIMIT 21
10 similar queries. Duplicated 3 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'TobyMac'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'TobyMac' LIMIT 21
10 similar queries. Duplicated 3 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 17788
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 17788 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries. Duplicated 3 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
10 similar queries. Duplicated 8 times.
0.06

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '899' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '899' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.33

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 899
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 899 LIMIT 21
10 similar queries.
0.08

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 126407
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 126407 LIMIT 21
10 similar queries.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'JESmamamaakt'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'JESmamamaakt' LIMIT 21
10 similar queries.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 126407
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 126407 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
10 similar queries. Duplicated 8 times.
0.06

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '890' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '890' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.30

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 890
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 890 LIMIT 21
10 similar queries.
0.09

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 375158
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 375158 LIMIT 21
10 similar queries. Duplicated 2 times.
0.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'Chricki'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'Chricki' LIMIT 21
10 similar queries. Duplicated 2 times.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 375158
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 375158 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries. Duplicated 2 times.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
10 similar queries. Duplicated 8 times.
0.06

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '882' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '882' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.25

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 882
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 882 LIMIT 21
10 similar queries.
0.09

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."id" = 17788
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 17788 LIMIT 21
10 similar queries. Duplicated 3 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

2
3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'TobyMac'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'TobyMac' LIMIT 21
10 similar queries. Duplicated 3 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(112)
  user = get_user(user)

/home/nathan/rb/site/./avatar/utils.py in get_user(33)
  return get_user_model().objects.get_by_natural_key(username)

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 17788
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 17788 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
10 similar queries. Duplicated 3 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
  avatar_url = provider.get_avatar_url(user, size)

/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
  avatar = get_primary_avatar(user, size)

/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
  avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]

3 <div class="flex-row">
4 <div class="mr-10 hidden-xs" style="width: 50px">
5 <a href="{% url 'blog_by_author' article.author.username %}">
6 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
7 </a>
8 </div>
9 <div class="flex-expand">
10 <div class="heading-title heading-border-bottom heading-color mb-6">

/home/nathan/rb/site/blog/templates/blog/includes/render_article_horizontal.html

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
10 similar queries. Duplicated 8 times.
0.06

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

6 <span>{{ article.published_date|date }}</span>
7 </li>
8 <li class="hidden-xs">
9 <a href="{% url 'blog_by_category' article.category %}">
10 <i class="fa fa-folder-open-o"></i>
11 <span>{{ article.category }}</span>
12 </a>
13 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT COUNT(*) AS "__count"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '881' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '881' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
10 similar queries.
0.29

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

18 </a>
19 </li>
20
21 {% get_comment_count for article as num_comments %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 881
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 881 LIMIT 21
10 similar queries.
0.09

Connection: default

Transaction status: In transaction

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/usr/lib/python3.10/contextlib.py in inner(79)
  return func(*args, **kwds)

/home/nathan/venv_rb310/lib/python3.10/site-packages/annoying/fields.py in __get__(36)
  .__get__(instance, instance_type)

25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>
26 </a>
27 </li>
28 {% if article.stats.hits > 100 %}
29 <li class="pull-right hidden-xs hidden-sm">
30 <i class="fa fa-line-chart"></i>
31 <span>{{ article.stats.hits|floor_100 }} views</span>
32 </li>

/home/nathan/rb/site/blog/templates/blog/includes/render_article_byline.html

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-22T03:45:09.900380+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T03:45:09.900450+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T03:45:09.900366+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-22T03:45:09.900567+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T03:45:09.900380+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T03:45:09.900450+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T03:45:09.900366+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-22T03:45:09.900567+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
2 similar queries.
2.89

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./ads/templatetags/ads/drawing.py in render_banner(291)
  if not banners:

55 </div>
56 {% endfor %}
57
58 {% render_banner 262 600 5 %}
59 </div>
60 <div id="tab_popular" class="tab-pane">
61 {% for popular_article in popular_articles %}
62 <div class="mb-30">

/home/nathan/rb/site/blog/templates/blog/includes/render_posts_preview_tabs.html

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-22T03:45:09.900380+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T03:45:09.900450+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T03:45:09.900366+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-22T03:45:09.900567+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
 ORDER BY
1 DESC, RANDOM() ASC
 LIMIT
1
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T03:45:09.900380+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T03:45:09.900450+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T03:45:09.900366+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-22T03:45:09.900567+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASC LIMIT 1
2 similar queries.
1.26

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./ads/templatetags/ads/drawing.py in render_banner(298)
  banner = banners.order_by('-area', '?')[0]

55 </div>
56 {% endfor %}
57
58 {% render_banner 262 600 5 %}
59 </div>
60 <div id="tab_popular" class="tab-pane">
61 {% for popular_article in popular_articles %}
62 <div class="mb-30">

/home/nathan/rb/site/blog/templates/blog/includes/render_posts_preview_tabs.html

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-22T03:45:09.908772+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T03:45:09.908833+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T03:45:09.908763+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-22T03:45:09.908946+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T03:45:09.908772+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T03:45:09.908833+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T03:45:09.908763+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-22T03:45:09.908946+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
2 similar queries.
1.27

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./ads/templatetags/ads/drawing.py in render_banner(291)
  if not banners:

63 {% include 'blog/includes/render_posts_preview.html' with article=popular_article %}
64 </div>
65 {% endfor %}
66 {% render_banner 262 600 5 %}
67 </div>
68 </div>
69 </div>
70

/home/nathan/rb/site/blog/templates/blog/includes/render_posts_preview_tabs.html

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-22T03:45:09.908772+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T03:45:09.908833+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T03:45:09.908763+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-22T03:45:09.908946+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
 ORDER BY
1 DESC, RANDOM() ASC
 LIMIT
1
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T03:45:09.908772+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T03:45:09.908833+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T03:45:09.908763+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-22T03:45:09.908946+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASC LIMIT 1
2 similar queries.
1.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_index(90)
  return render_articles_list(request, articles, 10)

/home/nathan/rb/site/./blog/views.py in render_articles_list(73)
  return render(request, 'blog/blog_list.html', {'articles': articles, 'drafts': drafts, 'tag': tag,

/home/nathan/rb/site/./ads/templatetags/ads/drawing.py in render_banner(298)
  banner = banners.order_by('-area', '?')[0]

63 {% include 'blog/includes/render_posts_preview.html' with article=popular_article %}
64 </div>
65 {% endfor %}
66 {% render_banner 262 600 5 %}
67 </div>
68 </div>
69 </div>
70

/home/nathan/rb/site/blog/templates/blog/includes/render_posts_preview_tabs.html

Log messages

No messages logged.