The Designer Dashboard is a new page providing a single place for MOC Designers to view everything they need to monitor and manage their MOCs on Rebrickable.
The old MOC Analytics and MOC Sales pages have been moved to this new location, as well as a whole lot of new features added.
You can now more easily add multiple images to your MOCs, to be displayed as a sliding image gallery. Previously this required linking to an external Bricksafe page (which is no longer supported). Up to 12 images can be added to the MOC's image gallery during submission or afterwards via the Admin tab.
We have introduced some changes intended to improve your ability to promote your MOCs and engage with your followers.
The new Workbench page is your own personal blog that you can use to document your LEGO builds. This might include work-in-progress designs for MOCs that you are working towards publishing; or official sets you might be building; or anything else related to LEGO building.
Two major new features for Premium MOCs has just been released: support for extra Payment Methods (Apple Pay, etc) and the ability to buy MOCs without having to create an account first (Guest Checkouts). Hopefully, these improvements will see some additional sales for your Premium MOCs.
RebrickNet is a tool that can identify LEGO parts from photos you upload. Since it's release 4 months ago, it has run 2300 predictions and detected 72,000 parts. RebrickNet has now been updated to recognise 200 different LEGO parts.
If you haven't noticed already, I've added a new feature to the site - Polls. You can see it on your home page just under the latest blog posts.
I will probably try to add a new poll question every month or so, or as some newsworthy topic comes up. I think they will generate some interesting discussions, or at least provide some useful data.
There have been a few improvements recently to MOC building instruction viewing and downloading. These new features are aimed at improving the MOC Studio/Ldraw file usability, adding PDF stamping/watermarking and improving confidence in potential Premium MOC buyers.
About 9 years ago, when I started building the Rebrickable database, I quickly came across the nightmare that is the Minifig part numbering and naming "standards". From that day onwards I pledged my eternal hatred of Minifigs with a few choice words, and have pretended they don't exist ever since.
The Designer Plan is intended to provide more features beyond the Pro Plan that help MOC designers promote and sell their creations on Rebrickable. Over the last few months I've released several enhancements specific to the Designer Plan.
default
18.54 ms (76 queries
including 72 similar
and 40 duplicates
)
Query
Timeline
Time (ms)
Action
SELECT COUNT(*) AS "__count" FROM "blog_article" INNER JOIN "blog_articlecategory" ON ("blog_article"."category_id" = "blog_articlecategory"."id") WHERE ("blog_article"."is_active" AND UPPER("blog_articlecategory"."name"::text) = UPPER('New Features'))SELECT ••• FROM "blog_article" INNER JOIN "blog_articlecategory" ON ("blog_article"."category_id" = "blog_articlecategory"."id") WHERE ("blog_article"."is_active" AND UPPER("blog_articlecategory"."name"::text) = UPPER('New Features'))
0.65
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 646) LIMIT 21
8 similar queries.
0.28
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 605) LIMIT 21
8 similar queries.
0.19
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 705) LIMIT 21
8 similar queries.
0.26
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 616) LIMIT 21
8 similar queries.
0.20
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 279) LIMIT 21
8 similar queries.
0.17
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 720) LIMIT 21
8 similar queries.
0.27
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 21SELECT ••• 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_by_category(240)
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 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 249) LIMIT 21
8 similar queries.
0.13
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 "rb_sitesettings"."id", "rb_sitesettings"."name", "rb_sitesettings"."value" FROM "rb_sitesettings" WHERE "rb_sitesettings"."name" = 'site_message' LIMIT 21SELECT ••• FROM "rb_sitesettings" WHERE "rb_sitesettings"."name" = 'site_message' LIMIT 21
0.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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_settings.py in site_message(147)
message = SiteSettings.get_site_message()/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
result = method(instance, *args, **kwargs)/home/nathan/rb/site/./rb/models/site.py in get_site_message(24)
setting = cls.objects.get(name=SiteSettings.SITE_MESSAGE)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '774' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '774' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.40
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 774 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 774 LIMIT 21
10 similar queries.
0.16
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.05
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '745' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '745' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.39
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 745 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 745 LIMIT 21
10 similar queries.
0.09
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.08
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.05
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '572' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '572' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.54
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 572 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 572 LIMIT 21
10 similar queries.
0.08
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.05
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '550' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '550' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.34
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 550 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 550 LIMIT 21
10 similar queries.
0.08
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.08
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.06
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '497' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '497' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.30
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 497 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 497 LIMIT 21
10 similar queries.
0.08
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.06
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '456' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '456' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.79
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 456 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 456 LIMIT 21
10 similar queries.
0.08
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.08
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '285' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '285' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.30
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 285 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 285 LIMIT 21
10 similar queries.
0.09
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.06
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '274' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '274' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.29
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 274 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 274 LIMIT 21
10 similar queries.
0.08
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.06
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '259' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '259' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.61
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 259 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 259 LIMIT 21
10 similar queries.
0.09
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 2 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
10 similar queries.
Duplicated 10 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
SELECT "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 4 LIMIT 21
10 similar queries.
Duplicated 10 times.
0.06
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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,
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" = '240' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "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" = '240' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
10 similar queries.
0.23
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
SELECT "blog_articlestats"."article_id", "blog_articlestats"."hits" FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 240 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 240 LIMIT 21
10 similar queries.
0.08
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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)
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-22T05:04:46.531738+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T05:04:46.531808+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T05:04:46.531723+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T05:04:46.531930+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T05:04:46.531738+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T05:04:46.531808+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T05:04:46.531723+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T05:04:46.531930+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
2 similar queries.
3.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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:
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-22T05:04:46.531738+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T05:04:46.531808+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T05:04:46.531723+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T05:04:46.531930+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASC LIMIT 1SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T05:04:46.531738+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T05:04:46.531808+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T05:04:46.531723+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T05:04:46.531930+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
2 similar queries.
1.47
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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]
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-22T05:04:46.540293+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T05:04:46.540353+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T05:04:46.540283+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T05:04:46.540464+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T05:04:46.540293+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T05:04:46.540353+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T05:04:46.540283+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T05:04:46.540464+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
2 similar queries.
1.65
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}
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-22T05:04:46.540293+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T05:04:46.540353+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T05:04:46.540283+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T05:04:46.540464+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASC LIMIT 1SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T05:04:46.540293+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T05:04:46.540353+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T05:04:46.540283+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T05:04:46.540464+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
2 similar queries.
1.19
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_by_category(240)
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 %}