Description: This MOC is created using only parts from 3x 31120 and is inspired to give the Falcon faction a sturdy watchtower to rule their kingdom and a festival with archery on the beach. However, the land is restless; the undead have risen in the forbidden cave and the chains of the dragon have been broken. The set is designed from play purposes.
The manuals together have 417 pages and 632 steps. About 67% of the total parts are used.
Watchtower features - Bridge - Heavy doors - Horse stable - Guards quarters with fireplace, beds and armory - Knight quarter with fireplace, chair, bed and table - Attic for storage
Cave features - Ominous entrance; including dead tree, crows and tombstone - Mining part - Lava part (very small) - Treasure - Undead knight and sorcerer - Unchained dragon
Festival features - Stand selling food - Chickens and rooster - Archery on the beach
Note: The back of the tower is open in favor of playability. There is room enough for hands to play. For even more access the floors of the tower can easily be separated.
Size: The height of the tower is 56 cm.
Important: This purchase only contains a digital manual for the MOC. No parts are included. No refunds. Reselling is not allowed. Illegal Lego techniques may or may not have been used. The build can be experienced as complex.
Feel free to ask questions and give feedback.
This MOC is an Alt Alternate Build of the following:
We play that the court wizard (from set 10305) goes on a quest to convince the archer and weapons master (from set 21325) and lionheart knight (from set 10305) to go on his quest to the forbidden dungeon. Those figures look pretty cool in this setting and connect this MOC to the other 2 sets for us. I decided not to include all that stuff on photo's here to not confuse people. So it is more clear what they'll be a able to build just using 3x 31120.
Thanks for the compliment and I'll let them know. Dankjewel :)
We provide links to third-party stores that sell LEGO products.
If you use these stores, you are not buying from Rebrickable.
Click the button below to search the stores.
default
34.89 ms (74 queries
including 54 similar
and 39 duplicates
)
Query
Timeline
Time (ms)
Action
SELECT "lego_baseset"."id", "lego_baseset"."set_num", "lego_baseset"."name", "lego_baseset"."year", "lego_baseset"."theme_id", "lego_baseset"."set_type", "lego_baseset"."num_parts", "lego_baseset"."default_inventory_id", "lego_baseset"."is_active", "lego_baseset"."is_accessory", "lego_baseset"."added_dt", "lego_baseset"."added_by_id", "lego_baseset"."last_modified_dt", "lego_baseset"."last_modified_by_id", "lego_baseset"."last_checked_for_bi", "lego_baseset"."descr", "lego_baseset"."primary_photo_id", "lego_baseset"."is_gear", "lego_baseset"."is_book", "lego_baseset"."search_vector", "lego_baseset"."mfhash_vector", "lego_moc"."baseset_ptr_id", "lego_moc"."designer_id", "lego_moc"."detail_url", "lego_moc"."gallery_url", "lego_moc"."bi_url", "lego_moc"."cad_url", "lego_moc"."video", "lego_moc"."bi_type", "lego_moc"."is_for_sale", "lego_moc"."is_hosted", "lego_moc"."cost", "lego_moc"."currency_id", "lego_moc"."parent_set_1_id", "lego_moc"."parent_set_2_id", "lego_moc"."parent_set_3_id", "lego_moc"."parent_set_4_id", "lego_moc"."parent_set_5_id", "lego_moc"."parent_inv_1_id", "lego_moc"."parent_inv_2_id", "lego_moc"."parent_inv_3_id", "lego_moc"."parent_inv_4_id", "lego_moc"."parent_inv_5_id", "lego_moc"."parent_type", "lego_moc"."is_allowed_premium", "lego_moc"."is_locked", "lego_moc"."last_social_post", "lego_moc"."is_review_requested", "lego_theme"."id", "lego_theme"."parent_id", "lego_theme"."name", "lego_theme"."slug", "lego_theme"."set_count", "lego_theme"."t1_id", "lego_theme"."t1_name", "lego_theme"."t2_name", "lego_theme"."t3_name", "lego_theme"."lego_blurb", "lego_theme"."banner_img", "lego_theme"."descr", T4."id", T4."parent_id", T4."name", T4."slug", T4."set_count", T4."t1_id", T4."t1_name", T4."t2_name", T4."t3_name", T4."lego_blurb", T4."banner_img", T4."descr", T5."id", T5."parent_id", T5."name", T5."slug", T5."set_count", T5."t1_id", T5."t1_name", T5."t2_name", T5."t3_name", T5."lego_blurb", T5."banner_img", T5."descr", "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", "lego_designer"."user_ptr_id", "lego_designer"."auto_approve", "lego_designer"."num_auto_approved", "lego_designer"."last_checked_for_moc_errors", "accounts_userplan"."user_id", "accounts_userplan"."plan_id", "accounts_userplan"."expiry_date", "accounts_userplan"."last_paid_date", "accounts_userplan"."is_subscription_active", "accounts_userplan"."subscription_period", "accounts_userplan"."payment_source", "accounts_userplan"."stripe_customer_id", "accounts_userplan"."stripe_subscription_id", "accounts_userplan"."paypal_subscription_id", "accounts_userplan"."base_free_plan_id", "accounts_userplan"."is_reminder_sent", "plans_plan"."id", "plans_plan"."type", "plans_plan"."version", "plans_plan"."stripe_id", "plans_plan"."paypal_id", "plans_plan"."cost_single", "plans_plan"."cost_monthly", "plans_plan"."cost_yearly", T10."id", T10."set_num", T10."name", T10."year", T10."theme_id", T10."set_type", T10."num_parts", T10."default_inventory_id", T10."is_active", T10."is_accessory", T10."added_dt", T10."added_by_id", T10."last_modified_dt", T10."last_modified_by_id", T10."last_checked_for_bi", T10."descr", T10."primary_photo_id", T10."is_gear", T10."is_book", T10."search_vector", T10."mfhash_vector", "lego_setstatstotal"."set_id", "lego_setstatstotal"."hits", "lego_setstatstotal"."builds", "lego_setstatstotal"."likes", "lego_setstatstotal"."bi_downloads", "lego_setstatstotal"."featured_hits", "lego_setstatstotal"."user_hits" FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") INNER JOIN "lego_theme" ON ("lego_baseset"."theme_id" = "lego_theme"."id") LEFT OUTER JOIN "lego_theme" T4 ON ("lego_theme"."parent_id" = T4."id") LEFT OUTER JOIN "lego_theme" T5 ON (T4."parent_id" = T5."id") INNER JOIN "lego_designer" ON ("lego_moc"."designer_id" = "lego_designer"."user_ptr_id") INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") LEFT OUTER JOIN "accounts_userplan" ON ("auth_user"."id" = "accounts_userplan"."user_id") LEFT OUTER JOIN "plans_plan" ON ("accounts_userplan"."plan_id" = "plans_plan"."id") LEFT OUTER JOIN "lego_baseset" T10 ON ("lego_moc"."parent_set_1_id" = T10."id") LEFT OUTER JOIN "lego_setstatstotal" ON ("lego_baseset"."id" = "lego_setstatstotal"."set_id") WHERE "lego_baseset"."set_num" = 'MOC-180547' LIMIT 21SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") INNER JOIN "lego_theme" ON ("lego_baseset"."theme_id" = "lego_theme"."id") LEFT OUTER JOIN "lego_theme" T4 ON ("lego_theme"."parent_id" = T4."id") LEFT OUTER JOIN "lego_theme" T5 ON (T4."parent_id" = T5."id") INNER JOIN "lego_designer" ON ("lego_moc"."designer_id" = "lego_designer"."user_ptr_id") INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") LEFT OUTER JOIN "accounts_userplan" ON ("auth_user"."id" = "accounts_userplan"."user_id") LEFT OUTER JOIN "plans_plan" ON ("accounts_userplan"."plan_id" = "plans_plan"."id") LEFT OUTER JOIN "lego_baseset" T10 ON ("lego_moc"."parent_set_1_id" = T10."id") LEFT OUTER JOIN "lego_setstatstotal" ON ("lego_baseset"."id" = "lego_setstatstotal"."set_id") WHERE "lego_baseset"."set_num" = 'MOC-180547' LIMIT 21
11.14
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(423)
moc = Moc.all_objects.select_related('designer', 'stats').get(set_num=set_num)
SELECTDISTINCT ("taggit_taggeditem"."object_id") AS "_prefetch_related_val", "taggit_tag"."id", "taggit_tag"."name", "taggit_tag"."slug" FROM "taggit_tag" INNER JOIN "taggit_taggeditem" ON ("taggit_tag"."id" = "taggit_taggeditem"."tag_id") INNER JOIN "django_content_type" ON ("taggit_taggeditem"."content_type_id" = "django_content_type"."id") WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc' AND "taggit_taggeditem"."object_id" IN (215819))SELECT ••• FROM "taggit_tag" INNER JOIN "taggit_taggeditem" ON ("taggit_tag"."id" = "taggit_taggeditem"."tag_id") INNER JOIN "django_content_type" ON ("taggit_taggeditem"."content_type_id" = "django_content_type"."id") WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc' AND "taggit_taggeditem"."object_id" IN (215819))
0.31
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(423)
moc = Moc.all_objects.select_related('designer', 'stats').get(set_num=set_num)
SELECT "lego_inventory"."id", "lego_inventory"."set_id", "lego_inventory"."version", "lego_inventory"."name", "lego_inventory"."is_active", "lego_inventory"."num_parts", "lego_inventory"."num_versions" FROM "lego_inventory" WHERE ("lego_inventory"."set_id" = 215819 AND "lego_inventory"."version" = 1) LIMIT 21SELECT ••• FROM "lego_inventory" WHERE ("lego_inventory"."set_id" = 215819 AND "lego_inventory"."version" = 1) LIMIT 21
0.17
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(523)
inventory = get_object_or_404(Inventory.all_objects, set=moc, version=inventory_version)
SELECT "lego_changelog"."id", "lego_changelog"."timestamp", "lego_changelog"."user_id", "lego_changelog"."model", "lego_changelog"."instance_id", "lego_changelog"."set_num", "lego_changelog"."part_num", "lego_changelog"."old_value", "lego_changelog"."new_value" FROM "lego_changelog" WHERE "lego_changelog"."set_num" = 'MOC-180547' ORDER BY "lego_changelog"."timestamp" DESCSELECT ••• FROM "lego_changelog" WHERE "lego_changelog"."set_num" = 'MOC-180547' ORDER BY "lego_changelog"."timestamp" DESC
3.41
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(538)
changes = moc.get_change_summary()/home/nathan/rb/site/./lego/models/sets.py in get_change_summary(1121)
changes = ChangeLog.get_changes(set_num=self.set_num)/home/nathan/rb/site/./lego/models/changes.py in get_changes(276)
if len(changes) > 0:
SELECT "lego_designerdiscount"."id", "lego_designerdiscount"."designer_id", "lego_designerdiscount"."name", "lego_designerdiscount"."start_date", "lego_designerdiscount"."end_date", "lego_designerdiscount"."discount_pct", "lego_designerdiscount"."mocs" FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-31T16:23:58.924131+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-31T16:23:58.924129+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '215819') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC LIMIT 1SELECT ••• FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-31T16:23:58.924131+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-31T16:23:58.924129+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '215819') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESCLIMIT 1
4 similar queries.
0.42
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(553)
context['applied_discount'] = DesignerDiscount.get_moc_discount(moc.id)/home/nathan/rb/site/./lego/models/designers.py in get_moc_discount(437)
return cls.get_active_discounts().filter(mocs__contains=int(moc_id)).first()
SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc') LIMIT 21SELECT ••• FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc') LIMIT 21
2 similar queries.
Duplicated 2 times.
0.09
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(637)
context['num_comments'] = Comment.objects.filter(object_pk=moc.id, content_type=ContentType.objects.get_for_model(moc), is_removed=False).count()
SELECT COUNT(*) AS "__count" FROM "django_comments" WHERE ("django_comments"."content_type_id" = 31 ANDNOT "django_comments"."is_removed" AND "django_comments"."object_pk" = '215819')SELECT ••• FROM "django_comments" WHERE ("django_comments"."content_type_id" = 31 ANDNOT "django_comments"."is_removed" AND "django_comments"."object_pk" = '215819')
0.20
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(637)
context['num_comments'] = Comment.objects.filter(object_pk=moc.id, content_type=ContentType.objects.get_for_model(moc), is_removed=False).count()
SELECT "lego_designerdiscount"."id", "lego_designerdiscount"."designer_id", "lego_designerdiscount"."name", "lego_designerdiscount"."start_date", "lego_designerdiscount"."end_date", "lego_designerdiscount"."discount_pct", "lego_designerdiscount"."mocs" FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-31T16:23:58.939610+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-31T16:23:58.939609+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '215819') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC LIMIT 1SELECT ••• FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-31T16:23:58.939610+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-31T16:23:58.939609+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '215819') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESCLIMIT 1
4 similar queries.
0.29
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in get_discounted_cost(381)
discount = DesignerDiscount.get_moc_discount(self.id)/home/nathan/rb/site/./lego/models/designers.py in get_moc_discount(437)
return cls.get_active_discounts().filter(mocs__contains=int(moc_id)).first()
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 21SELECT ••• FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21
0.12
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/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>
SELECT COUNT(*) AS "__count" FROM "lego_inventory" WHERE ("lego_inventory"."is_active" AND "lego_inventory"."set_id" = 215819)SELECT ••• FROM "lego_inventory" WHERE ("lego_inventory"."is_active" AND "lego_inventory"."set_id" = 215819)
2 similar queries.
Duplicated 2 times.
0.09
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/sets.py in get_num_inventories(981)
return Inventory.objects.filter(set=self).count()
16
<div class="mb-10">
17
<span>{{ moc.set_num }}</span>
18
•
19
<span><a href="#parts_scroll" title="See the parts in this MOC's inventory">{{ moc.num_parts }} parts{% if moc.get_num_inventories > 1 %} <span class="label label-primary">v{{ inventory.version }}</span>{% endif %}</a></span>
SELECT "lego_mocimage"."id", "lego_mocimage"."moc_id", "lego_mocimage"."is_primary", "lego_mocimage"."file_extension" FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 215819 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASCSELECT ••• FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 215819 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
3 similar queries.
Duplicated 3 times.
0.32
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)
25
<div class="alert alert-danger"><h4><i class="fa fa-warning"></i> This MOC is disabled.</h4></div>
26
{% endif %}
27
28
{% if moc.use_fake_image %}
29
30
{% thumbs moc.use_fake_image.img_dir settings.THUMBS_OPTIONS_MOC_TILE as thumb_img %}
31
{% thumbs_encoded moc.use_fake_image.img_dir settings.THUMBS_OPTIONS_MOC_MAIN_PREVIEW as preview_img %}
32
{% thumbs moc.use_fake_image.img_dir settings.THUMBS_OPTIONS_MOC_MAIN get_real_dims=1 as first_image %}
SELECT "lego_mocimage"."id", "lego_mocimage"."moc_id", "lego_mocimage"."is_primary", "lego_mocimage"."file_extension" FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 215819 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASCSELECT ••• FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 215819 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
3 similar queries.
Duplicated 3 times.
0.08
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)
SELECT "lego_mocimage"."id", "lego_mocimage"."moc_id", "lego_mocimage"."is_primary", "lego_mocimage"."file_extension" FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 215819 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASCSELECT ••• FROM "lego_mocimage" WHERE "lego_mocimage"."moc_id" = 215819 ORDER BY "lego_mocimage"."is_primary" DESC, "lego_mocimage"."id" ASC
3 similar queries.
Duplicated 3 times.
0.10
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)
74
</ul>
75
</div>
76
{# pre-create controls div so we can size column height without CLS impact and prevents flicker #}
77
<div class="flexslider-controls-container {% if moc.moc_images.all|length > 6 %}flexslider-controls-container-2rows{% endif %}">
SELECT COUNT(*) AS "__count" FROM "lego_inventory" WHERE ("lego_inventory"."is_active" AND "lego_inventory"."set_id" = 215819)SELECT ••• FROM "lego_inventory" WHERE ("lego_inventory"."is_active" AND "lego_inventory"."set_id" = 215819)
2 similar queries.
Duplicated 2 times.
0.10
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/sets.py in get_num_inventories(981)
return Inventory.objects.filter(set=self).count()
16
<div class=" mb-30">
17
<span>{{ set.set_num }}</span>
18
•
19
<span><a href="#parts_scroll" title="See the parts in this MOC's inventory">{{ set.num_parts }} parts{% if set.get_num_inventories > 1 %} <span class="label label-primary">v{{ inventory.version }}</span>{% endif %}</a></span>
20
•
21
<span><a href="{% url 'browse_mocs' %}?theme={{ set.theme_id }}" title="Find other MOCs in this theme">{{ set.theme.get_full_name }}</a></span>
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"."review_for_set_num"::text LIKE '%MOC-180547%') ORDER BY "blog_article"."published_date" ASCSELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."review_for_set_num"::text LIKE '%MOC-180547%') ORDER BY "blog_article"."published_date" ASC
0.29
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/sets.py in get_set_review(1393)
for review in reviews:
22
</div>
23
</div>
24
25
{% with moc.get_set_review as review %}
26
{% if review %}
27
<div class="text-center">
28
<a href="{{ review.get_absolute_url }}"><i class="fa fa-star"></i> See our Review of this MOC</a>
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" = 910652 LIMIT 21SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 910652 LIMIT 21
3 similar queries.
0.09
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in get_bi_preview_imgs(1476)
user = User.objects.get(id=self.designer_id)
31
{% endwith %}
32
33
<div class="row row-condensed">
34
{% with moc.get_bi_preview_imgs as preview_imgs %}
SELECT "accounts_usersetting"."id", "accounts_usersetting"."user_id", "accounts_usersetting"."name", "accounts_usersetting"."value" FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'moc' AND "accounts_usersetting"."user_id" = 910652)SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'moc' AND "accounts_usersetting"."user_id" = 910652)
0.23
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in get_bi_preview_imgs(1479)
if user.to_proxy().get_moc_option('preview_pdf_images'):/home/nathan/rb/site/./accounts/models/user_extras.py in get_moc_option(221)
options = self.get_moc_options()/home/nathan/rb/site/./accounts/models/user_extras.py in get_moc_options(213)
if len(self.moc_options) == 0:
31
{% endwith %}
32
33
<div class="row row-condensed">
34
{% with moc.get_bi_preview_imgs as preview_imgs %}
SELECT COUNT(*) AS "__count" FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 215819SELECT ••• FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 215819
0.10
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in has_instructions(515)
return MocInstructions.objects.filter(moc_id=self.id).count() > 0
44
</div>
45
46
{% if moc.is_for_sale and moc.is_hosted %}
47
{% if user_moc_purchase %}
48
{% url 'user_purchases' request.user.get_username as url %}
49
<p>You have purchased this MOC! Download the files below or via your <a href="{{ url }}">MOC Purchases</a> page.</p>
50
{% include "mocs/includes/render_moc_bi_files_sidebar.html" with purchase=user_moc_purchase bi_files=user_moc_purchase.bi_files %}
SELECT "lego_mocinstructions"."id", "lego_mocinstructions"."moc_id", "lego_mocinstructions"."uploaded", "lego_mocinstructions"."file_size", "lego_mocinstructions"."to_be_uploaded", "lego_mocinstructions"."s3file_id" FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 215819SELECT ••• FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 215819
2 similar queries.
Duplicated 2 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in get_bi_type_generic(261)
if self.has_pdf_instructions():/home/nathan/rb/site/./lego/models/mocs.py in has_pdf_instructions(536)
for bif in bi_files:
SELECT "lego_files_s3file"."id", "lego_files_s3file"."file_size", "lego_files_s3file"."last_modified", "lego_files_s3file"."aws_mi_file", "lego_files_s3file"."linode_si_file", "lego_files_s3file"."linode_mi_file", "lego_files_s3file"."linode_media_file" FROM "lego_files_s3file" WHERE "lego_files_s3file"."id" = 405040 LIMIT 21SELECT ••• FROM "lego_files_s3file" WHERE "lego_files_s3file"."id" = 405040 LIMIT 21
2 similar queries.
Duplicated 2 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in get_bi_type_generic(261)
if self.has_pdf_instructions():/home/nathan/rb/site/./lego/models/mocs.py in has_pdf_instructions(537)
if bif.is_pdf:/home/nathan/rb/site/./lego/models/mocs.py in is_pdf(2155)
return self.file.name.lower().endswith('.pdf')/home/nathan/rb/site/./lego/models/mocs.py in file(2050)
if self.s3file:
SELECT "lego_mocinstructions"."id", "lego_mocinstructions"."moc_id", "lego_mocinstructions"."uploaded", "lego_mocinstructions"."file_size", "lego_mocinstructions"."to_be_uploaded", "lego_mocinstructions"."s3file_id" FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 215819SELECT ••• FROM "lego_mocinstructions" WHERE "lego_mocinstructions"."moc_id" = 215819
2 similar queries.
Duplicated 2 times.
0.06
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in show_no_pdf_instructions_warning(532)
return not self.has_pdf_or_zip_instructions()/home/nathan/rb/site/./lego/models/mocs.py in has_pdf_or_zip_instructions(543)
for bif in bi_files:
15
</b>
16
</div>
17
</div>
18
{% if moc.show_no_pdf_instructions_warning %}
19
{% show_warning '' 'This Premium MOC does NOT include PDF-formatted instructions.' %}
SELECT "lego_files_s3file"."id", "lego_files_s3file"."file_size", "lego_files_s3file"."last_modified", "lego_files_s3file"."aws_mi_file", "lego_files_s3file"."linode_si_file", "lego_files_s3file"."linode_mi_file", "lego_files_s3file"."linode_media_file" FROM "lego_files_s3file" WHERE "lego_files_s3file"."id" = 405040 LIMIT 21SELECT ••• FROM "lego_files_s3file" WHERE "lego_files_s3file"."id" = 405040 LIMIT 21
2 similar queries.
Duplicated 2 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in show_no_pdf_instructions_warning(532)
return not self.has_pdf_or_zip_instructions()/home/nathan/rb/site/./lego/models/mocs.py in has_pdf_or_zip_instructions(544)
if bif.is_pdf or bif.is_zip:/home/nathan/rb/site/./lego/models/mocs.py in is_pdf(2155)
return self.file.name.lower().endswith('.pdf')/home/nathan/rb/site/./lego/models/mocs.py in file(2050)
if self.s3file:
15
</b>
16
</div>
17
</div>
18
{% if moc.show_no_pdf_instructions_warning %}
19
{% show_warning '' 'This Premium MOC does NOT include PDF-formatted instructions.' %}
SELECT "lego_designerdiscount"."id", "lego_designerdiscount"."designer_id", "lego_designerdiscount"."name", "lego_designerdiscount"."start_date", "lego_designerdiscount"."end_date", "lego_designerdiscount"."discount_pct", "lego_designerdiscount"."mocs" FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-31T16:23:58.993396+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-31T16:23:58.993393+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '215819') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC LIMIT 1SELECT ••• FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-31T16:23:58.993396+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-31T16:23:58.993393+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '215819') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESCLIMIT 1
4 similar queries.
0.49
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in get_discounted_cost(381)
discount = DesignerDiscount.get_moc_discount(self.id)/home/nathan/rb/site/./lego/models/designers.py in get_moc_discount(437)
return cls.get_active_discounts().filter(mocs__contains=int(moc_id)).first()
SELECT "lego_designerdiscount"."id", "lego_designerdiscount"."designer_id", "lego_designerdiscount"."name", "lego_designerdiscount"."start_date", "lego_designerdiscount"."end_date", "lego_designerdiscount"."discount_pct", "lego_designerdiscount"."mocs" FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-31T16:23:58.994577+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-31T16:23:58.994576+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '215819') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESC LIMIT 1SELECT ••• FROM "lego_designerdiscount" WHERE ("lego_designerdiscount"."end_date" > '2026-01-31T16:23:58.994577+00:00'::timestamptz AND "lego_designerdiscount"."start_date" <= '2026-01-31T16:23:58.994576+00:00'::timestamptz AND "lego_designerdiscount"."mocs" @> '215819') ORDER BY "lego_designerdiscount"."start_date" DESC, "lego_designerdiscount"."end_date" DESCLIMIT 1
4 similar queries.
0.38
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in get_discounted_cost(381)
discount = DesignerDiscount.get_moc_discount(self.id)/home/nathan/rb/site/./lego/models/designers.py in get_moc_discount(437)
return cls.get_active_discounts().filter(mocs__contains=int(moc_id)).first()
SELECT "lego_designerpaypalaccount"."id", "lego_designerpaypalaccount"."user_id", "lego_designerpaypalaccount"."paypal_email", "lego_designerpaypalaccount"."paypal_merchant_id" FROM "lego_designerpaypalaccount" WHERE "lego_designerpaypalaccount"."user_id" = 910652 LIMIT 21SELECT ••• FROM "lego_designerpaypalaccount" WHERE "lego_designerpaypalaccount"."user_id" = 910652 LIMIT 21
0.28
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)
73
<div class="col-xs-9"><a href="{% url 'designer_moc_sales' moc.designer.username %}?moc={{ moc.id }}"><b>{{ num_purchases }}</b></a> {% include 'rb/render_popover.html' with help_topic='MOC Sales' help_content='Only Rebrickable admins and the MOC designer can see the number of sales for a MOC.' %}</div>
74
</div>
75
{% endif %}
76
{% if not moc.designer.paypal_account.paypal_merchant_id and not moc.designer.paypal_account.paypal_email and not moc.designer.stripe_account.stripe_user_id %}
77
{% show_warning 'No Payment Methods' 'Sorry, it looks like the designer does not have any active payment methods setup yet.' %}
78
{% else %}
79
{# if just bought, page is reloaded with payment_intent=pi_3M3XnZJrPSxBprU31v9t65Or&payment_intent_client_secret=pi_3M3XnZJrPSxBprU31v9t65Or_secret_Ma8Z1z6OmxIskPFbWBJKhILUo&redirect_status=succeeded #}
SELECT 1 AS "a" FROM "lego_mocswitherrors" WHERE "lego_mocswitherrors"."moc_id" = 215819 LIMIT 1SELECT ••• FROM "lego_mocswitherrors" WHERE "lego_mocswitherrors"."moc_id" = 215819 LIMIT 1
0.10
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in is_alternate(205)
if not self.is_pending and MocsWithErrors.objects.filter(moc=self).exists():
153
154
</div>
155
<div class="p-10"> {# aligned to bottom via flex-grow in above div #}
156
{% if moc.is_alternate and moc.parent_set_1 and not moc.parent_set_2 %}
SELECT COUNT(*) AS "__count" FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 910652SELECT ••• FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 910652
4 similar queries.
Duplicated 4 times.
0.44
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)
SELECT COUNT(*) AS "__count" FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 910652SELECT ••• FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 910652
4 similar queries.
Duplicated 4 times.
0.11
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/designers.py in get_num_followers_formatted(231)
i = DesignerFollower.objects.filter(designer_id=self.id).count()
SELECT COUNT(*) AS "__count" FROM "accounts_usersetphoto" INNER JOIN "auth_user" ON ("accounts_usersetphoto"."user_id" = "auth_user"."id") WHERE ("accounts_usersetphoto"."is_active" AND "accounts_usersetphoto"."set_id" = 215819 AND "auth_user"."is_active")SELECT ••• FROM "accounts_usersetphoto" INNER JOIN "auth_user" ON ("accounts_usersetphoto"."user_id" = "auth_user"."id") WHERE ("accounts_usersetphoto"."is_active" AND "accounts_usersetphoto"."set_id" = 215819 AND "auth_user"."is_active")
0.40
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)
SELECT 1 AS "a" FROM "lego_part" WHERE "lego_part"."part_num" = '000000' LIMIT 1SELECT ••• FROM "lego_part" WHERE "lego_part"."part_num" = '000000' LIMIT 1
0.10
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./rb/templatetags/rb_helpers.py in parse_cards(561)
return parse_cards(txt)/home/nathan/rb/site/./rb/utils.py in parse_cards(1698)
d = re.sub(r'#(\d{2,5}[a-z0-9]*)', conditional_replacer, d) # part eg 75c09/usr/lib/python3.10/re.py in sub(209)
return _compile(pattern, flags).sub(repl, string, count)/home/nathan/rb/site/./rb/utils.py in conditional_replacer(1683)
if Part.all_objects.filter(part_num=x).exists():
16
{% if request.user.get_personalisation_options.dark_mode %}
SELECT "lego_baseset"."id", "lego_baseset"."set_num", "lego_baseset"."name", "lego_baseset"."year", "lego_baseset"."theme_id", "lego_baseset"."set_type", "lego_baseset"."num_parts", "lego_baseset"."default_inventory_id", "lego_baseset"."is_active", "lego_baseset"."is_accessory", "lego_baseset"."added_dt", "lego_baseset"."added_by_id", "lego_baseset"."last_modified_dt", "lego_baseset"."last_modified_by_id", "lego_baseset"."last_checked_for_bi", "lego_baseset"."descr", "lego_baseset"."primary_photo_id", "lego_baseset"."is_gear", "lego_baseset"."is_book", "lego_baseset"."search_vector", "lego_baseset"."mfhash_vector" FROM "lego_baseset" WHERE "lego_baseset"."id" = 98028 LIMIT 21SELECT ••• FROM "lego_baseset" WHERE "lego_baseset"."id" = 98028 LIMIT 21
5 similar queries.
Duplicated 5 times.
0.12
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/mocs.py in get_parent_set_col_size(347)
if self.parent_set_3:
SELECT "lego_inventory"."id", "lego_inventory"."set_id", "lego_inventory"."version", "lego_inventory"."name", "lego_inventory"."is_active", "lego_inventory"."num_parts", "lego_inventory"."num_versions" FROM "lego_inventory" WHERE "lego_inventory"."id" = 99973 LIMIT 21SELECT ••• FROM "lego_inventory" WHERE "lego_inventory"."id" = 99973 LIMIT 21
3 similar queries.
Duplicated 3 times.
0.08
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/templatetags/sets/drawing.py in render_set(24)
inventory = set.get_default_inventory()/home/nathan/rb/site/./lego/models/sets.py in get_default_inventory(971)
if self.default_inventory is not None:
SELECT "lego_inventory"."id", "lego_inventory"."set_id", "lego_inventory"."version", "lego_inventory"."name", "lego_inventory"."is_active", "lego_inventory"."num_parts", "lego_inventory"."num_versions" FROM "lego_inventory" WHERE "lego_inventory"."id" = 99973 LIMIT 21SELECT ••• FROM "lego_inventory" WHERE "lego_inventory"."id" = 99973 LIMIT 21
3 similar queries.
Duplicated 3 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/templatetags/sets/drawing.py in render_set(24)
inventory = set.get_default_inventory()/home/nathan/rb/site/./lego/models/sets.py in get_default_inventory(971)
if self.default_inventory is not None:
SELECT "lego_inventory"."id", "lego_inventory"."set_id", "lego_inventory"."version", "lego_inventory"."name", "lego_inventory"."is_active", "lego_inventory"."num_parts", "lego_inventory"."num_versions" FROM "lego_inventory" WHERE "lego_inventory"."id" = 99973 LIMIT 21SELECT ••• FROM "lego_inventory" WHERE "lego_inventory"."id" = 99973 LIMIT 21
3 similar queries.
Duplicated 3 times.
0.07
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/templatetags/sets/drawing.py in render_set(24)
inventory = set.get_default_inventory()/home/nathan/rb/site/./lego/models/sets.py in get_default_inventory(971)
if self.default_inventory is not None:
SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc') LIMIT 21SELECT ••• FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'moc') LIMIT 21
2 similar queries.
Duplicated 2 times.
0.09
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_page_locked_status(78)
content_type = ContentType.objects.get(app_label=page_content_type.split('.')[0], model=page_content_type.split('.')[1])
4
{% load rb_comments_filters %}
5
6
<div id="comments-{{ page.id }}">
7
{% get_page_locked_status content_type page.id as is_page_locked %}
8
9
{% comment %}
10
Not using render_comment_list as it uses styles in ul/li that I can't seem to get working well with Smarty.
11
Using fluent-comments to hide unused fields and do ajax add/reply comment.
SELECT 1 AS "a" FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 31 AND "rb_comments_pagelocked"."object_id" = 215819) LIMIT 1SELECT ••• FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 31 AND "rb_comments_pagelocked"."object_id" = 215819) LIMIT 1
0.07
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_page_locked_status(79)
is_locked = PageLocked.objects.filter(content_type=content_type, object_id=page_id).exists()
4
{% load rb_comments_filters %}
5
6
<div id="comments-{{ page.id }}">
7
{% get_page_locked_status content_type page.id as is_page_locked %}
8
9
{% comment %}
10
Not using render_comment_list as it uses styles in ul/li that I can't seem to get working well with Smarty.
11
Using fluent-comments to hide unused fields and do ajax add/reply comment.
SELECT ("auth_user_groups"."user_id") AS "_prefetch_related_val_user_id", "auth_group"."id", "auth_group"."name" FROM "auth_group" INNER JOIN "auth_user_groups" ON ("auth_group"."id" = "auth_user_groups"."group_id") WHERE "auth_user_groups"."user_id" IN (569834, 910652, 537774)SELECT ••• FROM "auth_group" INNER JOIN "auth_user_groups" ON ("auth_group"."id" = "auth_user_groups"."group_id") WHERE "auth_user_groups"."user_id" IN (569834, 910652, 537774)
2 similar queries.
Duplicated 2 times.
0.13
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(71)
qs = self.get_queryset(context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_queryset(45)
return qs[:50], len(qs)
14
{% endcomment %}
15
{% if not comment_list %}
16
{# Get comments for a page #}
17
{% get_rb_comment_list for page as comment_list %}
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" = 31 AND "django_comments"."object_pk" = '215819' 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" = 31 AND "django_comments"."object_pk" = '215819' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
5.17
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/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()
15
{% if not comment_list %}
16
{# Get comments for a page #}
17
{% get_rb_comment_list for page as comment_list %}
SELECT ("auth_user_groups"."user_id") AS "_prefetch_related_val_user_id", "auth_group"."id", "auth_group"."name" FROM "auth_group" INNER JOIN "auth_user_groups" ON ("auth_group"."id" = "auth_user_groups"."group_id") WHERE "auth_user_groups"."user_id" IN (569834, 910652, 537774)SELECT ••• FROM "auth_group" INNER JOIN "auth_user_groups" ON ("auth_group"."id" = "auth_user_groups"."group_id") WHERE "auth_user_groups"."user_id" IN (569834, 910652, 537774)
2 similar queries.
Duplicated 2 times.
0.12
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)
89
{% with cache_timeout=user.is_authenticated|yesno:"0,300" %}
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" = 569834 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 569834 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
4 similar queries.
0.12
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/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 "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", "lego_designer"."user_ptr_id", "lego_designer"."auto_approve", "lego_designer"."num_auto_approved", "lego_designer"."last_checked_for_moc_errors" FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 569834 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 569834 LIMIT 21
2 similar queries.
0.16
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():
57
{% elif page.is_moc and page.designer_id == comment.user_id %}
58
<span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
SELECT 1 AS "a" FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 569834) LIMIT 1SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 569834) LIMIT 1
4 similar queries.
Duplicated 2 times.
0.24
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():
57
{% elif page.is_moc and page.designer_id == comment.user_id %}
58
<span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
SELECT 1 AS "a" FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 569834) LIMIT 1SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 569834) LIMIT 1
4 similar queries.
Duplicated 2 times.
0.17
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():
57
{% elif page.is_moc and page.designer_id == comment.user_id %}
58
<span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
SELECT 1 AS "a" FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 215819 AND "accounts_mocpurchase"."user_id" = 569834) LIMIT 1SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 215819 AND "accounts_mocpurchase"."user_id" = 569834) LIMIT 1
4 similar queries.
0.42
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
if user.has_purchased_moc(moc.id):/home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
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" = 910652 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 910652 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
4 similar queries.
Duplicated 2 times.
0.08
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/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 1 AS "a" FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 215819 AND "accounts_mocpurchase"."user_id" = 910652) LIMIT 1SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 215819 AND "accounts_mocpurchase"."user_id" = 910652) LIMIT 1
4 similar queries.
Duplicated 2 times.
0.17
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
if user.has_purchased_moc(moc.id):/home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
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" = 537774 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 537774 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
4 similar queries.
0.08
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/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 "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", "lego_designer"."user_ptr_id", "lego_designer"."auto_approve", "lego_designer"."num_auto_approved", "lego_designer"."last_checked_for_moc_errors" FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 537774 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 537774 LIMIT 21
2 similar queries.
0.11
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():
57
{% elif page.is_moc and page.designer_id == comment.user_id %}
58
<span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
SELECT 1 AS "a" FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 537774) LIMIT 1SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 537774) LIMIT 1
4 similar queries.
Duplicated 2 times.
0.14
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():
57
{% elif page.is_moc and page.designer_id == comment.user_id %}
58
<span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
SELECT 1 AS "a" FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 537774) LIMIT 1SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 537774) LIMIT 1
4 similar queries.
Duplicated 2 times.
0.17
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():
57
{% elif page.is_moc and page.designer_id == comment.user_id %}
58
<span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
SELECT 1 AS "a" FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 215819 AND "accounts_mocpurchase"."user_id" = 537774) LIMIT 1SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 215819 AND "accounts_mocpurchase"."user_id" = 537774) LIMIT 1
4 similar queries.
0.11
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
if user.has_purchased_moc(moc.id):/home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
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" = 910652 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 910652 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
4 similar queries.
Duplicated 2 times.
0.09
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/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 1 AS "a" FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 215819 AND "accounts_mocpurchase"."user_id" = 910652) LIMIT 1SELECT ••• FROM "accounts_mocpurchase" WHERE ("accounts_mocpurchase"."is_active" AND "accounts_mocpurchase"."moc_id" = 215819 AND "accounts_mocpurchase"."user_id" = 910652) LIMIT 1
4 similar queries.
Duplicated 2 times.
0.08
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_verified_purchase(97)
if user.has_purchased_moc(moc.id):/home/nathan/rb/site/./accounts/models/user_extras.py in has_purchased_moc(1008)
return MocPurchase.objects.filter(user=self, moc_id=moc_id).exists()
SELECT COUNT(*) AS "__count" FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 910652SELECT ••• FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 910652
4 similar queries.
Duplicated 4 times.
0.18
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)
SELECT COUNT(*) AS "__count" FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 910652SELECT ••• FROM "lego_designerfollower" WHERE "lego_designerfollower"."designer_id" = 910652
4 similar queries.
Duplicated 4 times.
0.09
Connection: default
Transaction status: Idle
/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
return fn(*args, **kw)/home/nathan/rb/site/./lego/views/mocs.py in moc_details(690)
return render(request, 'mocs/moc_details.html', context)/home/nathan/rb/site/./lego/models/designers.py in get_num_followers_formatted(231)
i = DesignerFollower.objects.filter(designer_id=self.id).count()
Thanks for the compliment and I'll let them know. Dankjewel :)