The B-Model of set 71786-1 was more of a giant lizardman than a mech, so I was looking forward to seeing some mech-MOCs starting to appear on the alternate build tab. Dragons make great donor sets for mechs with all the joints avaliable. The first alternate build posted, MOC-135314 Ice Dragon Warrior by thebricksong, looked impressive so I just had to give it a go. Will it satisfy my itch for a quality mech build?
But first lets meet the designer. thebricksong only has a few MOCs posted so far. You can check out their other MOCs here, and give them a follow if you like what you see.
Can you tell us something about yourself. Who is behind thebricksong? Hi! Im Song, a long-time lego fan with an interest in building mocs of spaceships and mechs! I'm also currently a full-time student at university, so I do not have as much time as I would like for the hobby. However, in my free time, Lego is a great avenue for me to de-stress and be creative.
Why did you decide to go with video instructions? Would you consider making .pdf instructions in future? I wanted to share my creations with the community and figured out that video instructions would be the quickest way! That being said, I do intend to make .pdf instructions available in the future and have been familiarising myself with Studio 2.0 software recently.
How long have you been building with LEGO? Did you experience any Dark Ages? Lego has been a part of most of my life, from a young child playing with hand-me-down sets to where I am today. However, I think I only started actual moc making about 3-4 years ago. There hasn't been a prolonged dark age for me, just some periods of time when I get too busy in school or have a creative block, but I usually get back to building within a few months!
How long did it take you to design this MOC? This alternate build took me about two weekends' worth of work to create. I did make one version initially but was unsatisfied with the results so I took it apart and tried again.
What design feature are you happiest with, and what didn’t work out as well as you’d hoped? The head was the starting point of the moc, I really wanted to incorporate the specialised dragon headpiece into it and was quite happy with the results. While I'm generally pleased with the MOC, I do wish that could have better covered up the top area of the chest, where the CCBS (Character and Creature Building System) ball joints are visible. That being said, that may restrict some motion in the shoulders!
Who is your favourite character from Ninjago and why? Zane has got to be one of my favourite characters. I like the idea of him being a nindroid and still vividly remember watching as a kid back then, his sacrifice in season 3 to defeat the overlord.
What is your favourite LEGO set and why? Many sets stand out to me due to their build experience, display/play value, nostalgia or parts variety, but I got to say last year’s 10497 Galaxy Explorer ticks all those checkboxes! Furthermore, with Lego getting more expensive, I found the set to be decently priced and of good value for money.
What’s your favourite LEGO part, and why? The mixel ball joints have been a game changer, allowing us to build small to medium-scale mechs without having to use complicated techniques or bulky CCBS joints. Beyond that, these smaller-scale ball joints enable so many different angles in our builds! In particular, I like the bar 2L with tow ball as it is small enough to fit into tight spaces while allowing connections via clips, anti-studs or technic pins/bricks!
Are you currently working on a MOC? Yes, I am! I have so many other ideas on what to build, the only problem is finding time to experiment and play!
An alternate build of 71786 Zane's Ice Dragon Creature, the Ice Dragon Warrior improves on the official alternate model and retains the cool wings from the dragon mode, more articulation and better proportions!
The part quantity is 936. While there are quite a few newer parts in rare colours, they can all be found in Zane's Ice Dragon Creature as this is an alternate build of that set.
Alt builds are my favourite type of MOC. It makes collecting the parts for a build so much easier. This is my first time following video instructions for a build. I immediately muted the sound as I knew I would be pausing every few seconds and listening to music like that is definitely not my style. Thankfully there is no voice over, any extra comments are given as text on the top of the screen, perfect for those watching on mute. Thebricksong gives a lovely introduction to the model showing off its features and explaining the types of joints before starting with the build. You can also jump straight to the build which starts at the 1:10 mark.
The Build
Instead of starting with the torso, this model is built from the feet up. Detailed instructions are given for one side only, so I built the mirrored side as I went. Just make sure not to also build a mirrored torso when you get to 2:40! Sticklers for legal building techniques won't like the feet, as the the slopes near the front don't have quite enough room to sit fully flat. It is only a fraction of a millimeter off, so I am not too concerned.
The calves and thighs come together quickly, and then we get to assemble the pices together into the lower body.
Next we get building on the upper torso. It uses a double ball joint in a vertical position using the top end to connect the head and the bottom end has a gold part which can be folded out if the mech wants to carry the sword on its back.
The chest pieces contain a plethora of joints. We have the chest joint, shoulder joint, connection point for the wings and also a bar to clip on the shoulder pads. With all these various stresses as parts are moved, it is not a surprise that these are the weak link in the model. One of the chest plates even gets bumped off in the instructions, which is somewhat reassuring for when you do exactly the same thing! The flags are also connected here, but as these are fixed in place, moving the chest joint too much will cause the flags to collide. This is not so much of a problem as most of the arm mobility is provided by the shoulder joint.
The arms are built in three pieces providing rotation in the wrist joints as well as a poseable elbow. I really like the head, it has the perfect amount of detail to be interesting without becoming bulky.
The wings are very similar to the main build, but modified to fold. I like the addition of a giant shuriken (throwing star) giving multiple options for weapons. The weapons take a bit of work to get into and out of the hands. The bottom of the staff must be removed so you can slide the axel throught the hands. For the throwing star a technic adapter needs to be connected to either of the hands. The staff can also be stored on the back if preferred.
Once all the bits are done, it is time to assemble the full model.
The back doesn't look quite as nice as the front, but the front looks pretty darn impressive. There is a decent pile of parts left over, but bigger isn't always better. I would rather a quality MOC that is a bit smaller, than one that has parts crammed in just for the purpose of using them up. Pretty much all the joints from the donot set have been used, which is impressive given how many we started with.
Conclusion
There is a reason that you tube instructions are not permitted for premium MOCs. While thebricksong did a pretty good job with good lighting and most steps being a reasonable quantity of parts, it was still very much a case of blink and you miss it. I had to back track more than I would like to admit. Pausing seemed to be a 50/50 gamble between a useful still frame and a blurred image due to movement. Sometimes fingers got in the way, but overall the experience was better than I was expecting. Younger kids could struggle to follow the instructions, but it could be done as a build together with a parent building one side from the video, and the kid building the mirrored side based on the partent's build (Mirrored side doesn't get detailed video). Older kids should be able to follow the instructions on their own.
(Click/tap any above image to see a larger version)
This was a fun build. I don't think I have ever built a mech with so many points of articulation. For a quick run down thebricksong goes through the different movement points at the start of the instruction video and I would recommend watching the first part if you are interested. This model can felx it's pecs and do an ab crunch which can't be said of many LEGO mechs. I wanted to test out just how poseable this MOC is and managed to achieve quite a few interesting positions including taking a knee, doing a handstand (with a bit of support from the flags), and even a bit of yoga and break dancing.
The aesthetics are top notch. The head gives off some real autobot vibes and has a great personality.I said this in my review of the main set, but the trans blue giant swords are a thing of beauty. Glad to see this MOC making use of all 4. Having the wings as foldable allows for lots of cool poses as well as play. The shuriken and giant sword are a perfect fit to the Ninjago universe Thebricksong does a great job at providing a proper mech alt-build, rather than the lizardman that was included as the official b-model.
There is a disclaimer in the description that the set is a bit fragile. This is unfortunately not an understatement and there were many parts falling off as I posed the mech for the above photos. The breast plate and surrounding area was particularly fragile, but I can see that attempts to strengthen it would likely reduce the range of movement. That is the trade off, you can have a sturdy bi-pedal build with the official b-model, or you can have a flexible build with this MOC. This one is more suited as a display model than a play set, although I am sure careful kids could still have fun without causing too much damage.
Is it worth building? As a free MOC, if you already have set 71786-1 I would recommend giving it a go. For me the impressive techniquies and movement far outweigh the downside of it being a bit fragile. If you do build it, I challenge you to submit a photo with the most ridiculous or interesting pose you can think of. Hopefully we will see some more builds from thebricksong in the future, you can give them a follow by clicking the big button below. I am also looking forward to more alt-builds for this set, although I won't be reviewing every single one.
default
1071.99 ms (74 queries
including 52 similar
and 22 duplicates
)
Query
Timeline
Time (ms)
Action
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" = 570) LIMIT 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 570) LIMIT 21
9 similar queries.
0.54
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(115)
article = get_object_or_404(Article, id=article_id)
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", (SIMILARITY("blog_article"."title", 'MOC Review: MOC-135314 - Ice Dragon Warrior') + SIMILARITY("blog_article"."body", 'The B-Model of set 71786-1 was more of a giant lizardman than a mech, so I was looking forward to seeing some mech-MOCs starting to appear on the alternate build tab. Dragons make great donor sets for mechs with all the joints avaliable. The first alternate build posted, MOC-135314 Ice Dragon Warrior by thebricksong, looked impressive so I just had to give it a go. Will it satisfy my itch for a quality mech build?
Contents
Q&AThe MOCThe BuildConclusion
Q&A
But first lets meet the designer. thebricksong only has a few MOCs posted so far. You can check out their other MOCs here, and give them a follow if you like what you see.
Can you tell us something about yourself. Who is behind thebricksong?Hi! Im Song, a long-time lego fan with an interest in building mocs of spaceships and mechs! I''m also currently a full-time student at university, so I do not have as much time as I would like for the hobby. However, in my free time, Lego is a great avenue for me to de-stress and be creative.
Why did you decide to go with video instructions? Would you consider making .pdf instructions in future?I wanted to share my creations with the community and figured out that video instructions would be the quickest way! That being said, I do intend to make .pdf instructions available in the future and have been familiarising myself with Studio 2.0 software recently.
How long have you been building with LEGO? Did you experience any Dark Ages?Lego has been a part of most of my life, from a young child playing with hand-me-down sets to where I am today. However, I think I only started actual moc making about 3-4 years ago. There hasn''t been a prolonged dark age for me, just some periods of time when I get too busy in school or have a creative block, but I usually get back to building within a few months!
How long did it take you to design this MOC?This alternate build took me about two weekends'' worth of work to create. I did make one version initially but was unsatisfied with the results so I took it apart and tried again.
What design feature are you happiest with, and what didn’t work out as well as you’d hoped?The head was the starting point of the moc, I really wanted to incorporate the specialised dragon headpiece into it and was quite happy with the results. While I''m generally pleased with the MOC, I do wish that could have better covered up the top area of the chest, where the CCBS (Character and Creature Building System) ball joints are visible. That being said, that may restrict some motion in the shoulders!
Who is your favourite character from Ninjago and why?Zane has got to be one of my favourite characters. I like the idea of him being a nindroid and still vividly remember watching as a kid back then, his sacrifice in season 3 to defeat the overlord.
What is your favourite LEGO set and why?Many sets stand out to me due to their build experience, display/play value, nostalgia or parts variety, but I got to say last year’s 10497 Galaxy Explorer ticks all those checkboxes! Furthermore, with Lego getting more expensive, I found the set to be decently priced and of good value for money.
What’s your favourite LEGO part, and why?The mixel ball joints have been a game changer, allowing us to build small to medium-scale mechs without having to use complicated techniques or bulky CCBS joints. Beyond that, these smaller-scale ball joints enable so many different angles in our builds! In particular, I like the bar 2L with tow ball as it is small enough to fit into tight spaces while allowing connections via clips, anti-studs or technic pins/bricks!
Are you currently working on a MOC?Yes, I am! I have so many other ideas on what to build, the only problem is finding time to experiment and play!
The MOC
The Moc details can be found here.
An alternate build of 71786 Zane''s Ice Dragon Creature, the Ice Dragon Warrior improves on the official alternate model and retains the cool wings from the dragon mode, more articulation and better proportions!
The part quantity is 936. While there are quite a few newer parts in rare colours, they can all be found in Zane''s Ice Dragon Creature as this is an alternate build of that set.
Alt builds are my favourite type of MOC. It makes collecting the parts for a build so much easier. This is my first time following video instructions for a build. I immediately muted the sound as I knew I would be pausing every few seconds and listening to music like that is definitely not my style. Thankfully there is no voice over, any extra comments are given as text on the top of the screen, perfect for those watching on mute. Thebricksong gives a lovely introduction to the model showing off its features and explaining the types of joints before starting with the build. You can also jump straight to the build which starts at the 1:10 mark.
The Build
Instead of starting with the torso, this model is built from the feet up. Detailed instructions are given for one side only, so I built the mirrored side as I went. Just make sure not to also build a mirrored torso when you get to 2:40! Sticklers for legal building techniques won''t like the feet, as the the slopes near the front don''t have quite enough room to sit fully flat. It is only a fraction of a millimeter off, so I am not too concerned.
The calves and thighs come together quickly, and then we get to assemble the pices together into the lower body.
')) AS "similarity", "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 "blog_article" LEFT OUTER JOIN "auth_user" ON ("blog_article"."author_id" = "auth_user"."id") WHERE ("blog_article"."is_active" AND "blog_article"."published_date" > '2023-01-23T08:13:25.037734+00:00'::timestamptz ANDNOT ("blog_article"."id" = 570)) ORDER BY 19 DESC, "blog_article"."published_date" DESC LIMIT 20SELECT "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", (SIMILARITY("blog_article"."title", 'MOC Review: MOC-135314 - Ice Dragon Warrior') + SIMILARITY("blog_article"."body", 'The B-Model of set 71786-1 was more of a giant lizardman than a mech, so I was looking forward to seeing some mech-MOCs starting to appear on the alternate build tab. Dragons make great donor sets for mechs with all the joints avaliable. The first alternate build posted, MOC-135314 Ice Dragon Warrior by thebricksong, looked impressive so I just had to give it a go. Will it satisfy my itch for a quality mech build?
Contents
Q&AThe MOCThe BuildConclusion
Q&A
But first lets meet the designer. thebricksong only has a few MOCs posted so far. You can check out their other MOCs here, and give them a follow if you like what you see.
Can you tell us something about yourself. Who is behind thebricksong?Hi! Im Song, a long-time lego fan with an interest in building mocs of spaceships and mechs! I''m also currently a full-time student at university, so I do not have as much time as I would like for the hobby. However, in my free time, Lego is a great avenue for me to de-stress and be creative.
Why did you decide to go with video instructions? Would you consider making .pdf instructions in future?I wanted to share my creations with the community and figured out that video instructions would be the quickest way! That being said, I do intend to make .pdf instructions available in the future and have been familiarising myself with Studio 2.0 software recently.
How long have you been building with LEGO? Did you experience any Dark Ages?Lego has been a part of most of my life, from a young child playing with hand-me-down sets to where I am today. However, I think I only started actual moc making about 3-4 years ago. There hasn''t been a prolonged dark age for me, just some periods of time when I get too busy in school or have a creative block, but I usually get back to building within a few months!
How long did it take you to design this MOC?This alternate build took me about two weekends'' worth of work to create. I did make one version initially but was unsatisfied with the results so I took it apart and tried again.
What design feature are you happiest with, and what didn’t work out as well as you’d hoped?The head was the starting point of the moc, I really wanted to incorporate the specialised dragon headpiece into it and was quite happy with the results. While I''m generally pleased with the MOC, I do wish that could have better covered up the top area of the chest, where the CCBS (Character and Creature Building System) ball joints are visible. That being said, that may restrict some motion in the shoulders!
Who is your favourite character from Ninjago and why?Zane has got to be one of my favourite characters. I like the idea of him being a nindroid and still vividly remember watching as a kid back then, his sacrifice in season 3 to defeat the overlord.
What is your favourite LEGO set and why?Many sets stand out to me due to their build experience, display/play value, nostalgia or parts variety, but I got to say last year’s 10497 Galaxy Explorer ticks all those checkboxes! Furthermore, with Lego getting more expensive, I found the set to be decently priced and of good value for money.
What’s your favourite LEGO part, and why?The mixel ball joints have been a game changer, allowing us to build small to medium-scale mechs without having to use complicated techniques or bulky CCBS joints. Beyond that, these smaller-scale ball joints enable so many different angles in our builds! In particular, I like the bar 2L with tow ball as it is small enough to fit into tight spaces while allowing connections via clips, anti-studs or technic pins/bricks!
Are you currently working on a MOC?Yes, I am! I have so many other ideas on what to build, the only problem is finding time to experiment and play!
The MOC
The Moc details can be found here.
An alternate build of 71786 Zane''s Ice Dragon Creature, the Ice Dragon Warrior improves on the official alternate model and retains the cool wings from the dragon mode, more articulation and better proportions!
The part quantity is 936. While there are quite a few newer parts in rare colours, they can all be found in Zane''s Ice Dragon Creature as this is an alternate build of that set.
Alt builds are my favourite type of MOC. It makes collecting the parts for a build so much easier. This is my first time following video instructions for a build. I immediately muted the sound as I knew I would be pausing every few seconds and listening to music like that is definitely not my style. Thankfully there is no voice over, any extra comments are given as text on the top of the screen, perfect for those watching on mute. Thebricksong gives a lovely introduction to the model showing off its features and explaining the types of joints before starting with the build. You can also jump straight to the build which starts at the 1:10 mark.
The Build
Instead of starting with the torso, this model is built from the feet up. Detailed instructions are given for one side only, so I built the mirrored side as I went. Just make sure not to also build a mirrored torso when you get to 2:40! Sticklers for legal building techniques won''t like the feet, as the the slopes near the front don''t have quite enough room to sit fully flat. It is only a fraction of a millimeter off, so I am not too concerned.
The calves and thighs come together quickly, and then we get to assemble the pices together into the lower body.
')) AS "similarity", "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 "blog_article" LEFT OUTER JOIN "auth_user" ON ("blog_article"."author_id" = "auth_user"."id") WHERE ("blog_article"."is_active" AND "blog_article"."published_date" > '2023-01-23T08:13:25.037734+00:00'::timestamptz ANDNOT ("blog_article"."id" = 570)) ORDER BY 19 DESC, "blog_article"."published_date" DESCLIMIT 20
1006.25
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(145)
related_articles = article.get_related_articles(num_sidebar_posts)/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
result = method(instance, *args, **kwargs)/home/nathan/rb/site/./blog/models.py in get_related_articles(259)
return list(Article.objects.select_related('author').filter(published_date__gt=timezone.now()-timedelta(days=365*3)).annotate(similarity=TrigramSimilarity('title', self.title)+TrigramSimilarity('body', body)).exclude(id=self.id).order_by('-similarity', '-published_date')[:num])
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", "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 "blog_article" LEFT OUTER JOIN "auth_user" ON ("blog_article"."author_id" = "auth_user"."id") LEFT OUTER JOIN "blog_articlestats" ON ("blog_article"."id" = "blog_articlestats"."article_id") WHERE ("blog_article"."is_active" AND "blog_article"."published_date" > '2025-01-22T08:13:26.048575+00:00'::timestamptz) ORDER BY "blog_articlestats"."hits" DESC LIMIT 20SELECT ••• FROM "blog_article" LEFT OUTER JOIN "auth_user" ON ("blog_article"."author_id" = "auth_user"."id") LEFT OUTER JOIN "blog_articlestats" ON ("blog_article"."id" = "blog_articlestats"."article_id") WHERE ("blog_article"."is_active" AND "blog_article"."published_date" > '2025-01-22T08:13:26.048575+00:00'::timestamptz) ORDER BY "blog_articlestats"."hits" DESCLIMIT 20
2.82
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(146)
popular_articles = Article.get_popular_articles(num_sidebar_posts)/home/nathan/rb/site/./cache/utils.py in cache_wrapper(101)
caches[cache_key].set(method_key, result, seconds)/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/hash.py in set(344)
return self._run_cmd("set", key, False, *args, **kwargs)/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/hash.py in _run_cmd(322)
return self._safely_run_func(client, func, default_val, *args, **kwargs)/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/hash.py in _safely_run_func(211)
result = func(*args, **kwargs)/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/base.py in set(1424)
return client.set(key, value, expire=expire, noreply=noreply, flags=flags)/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/base.py in set(475)
return self._store_cmd(b"set", {key: value}, expire, noreply, flags=flags)[key]/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/client/base.py in _store_cmd(1196)
data, data_flags = self.serde.serialize(key, data)/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/serde.py in serialize(119)
return self._serialize_func(key, value)/home/nathan/venv_rb310/lib/python3.10/site-packages/pymemcache/serde.py in _python_memcache_serializer(58)
pickler.dump(value)
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
9 similar queries.
0.23
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
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
9 similar queries.
0.21
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
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
9 similar queries.
0.26
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
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
9 similar queries.
0.22
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
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
9 similar queries.
0.18
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
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
9 similar queries.
0.58
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
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
9 similar queries.
0.33
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
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
9 similar queries.
0.19
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
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 "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"."published_date" = '2023-03-18T00:00:00.125628+00:00'::timestamptz AND "blog_article"."id" > 570) OR "blog_article"."published_date" > '2023-03-18T00:00:00.125628+00:00'::timestamptz)) ORDER BY "blog_article"."published_date" ASC, "blog_article"."id" ASC LIMIT 1SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND (("blog_article"."published_date" = '2023-03-18T00:00:00.125628+00:00'::timestamptz AND "blog_article"."id" > 570) OR "blog_article"."published_date" > '2023-03-18T00:00:00.125628+00:00'::timestamptz)) ORDER BY "blog_article"."published_date" ASC, "blog_article"."id" ASCLIMIT 1
0.61
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(152)
article.next = Article.get_next_by_published_date(article)/usr/lib/python3.10/functools.py in _method(388)
return self.func(cls_or_self, *self.args, *args, **keywords)
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"."published_date" = '2023-03-18T00:00:00.125628+00:00'::timestamptz AND "blog_article"."id" < 570) OR "blog_article"."published_date" < '2023-03-18T00:00:00.125628+00:00'::timestamptz)) ORDER BY "blog_article"."published_date" DESC, "blog_article"."id" DESC LIMIT 1SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND (("blog_article"."published_date" = '2023-03-18T00:00:00.125628+00:00'::timestamptz AND "blog_article"."id" < 570) OR "blog_article"."published_date" < '2023-03-18T00:00:00.125628+00:00'::timestamptz)) ORDER BY "blog_article"."published_date" DESC, "blog_article"."id" DESCLIMIT 1
0.80
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(156)
article.prev = Article.get_previous_by_published_date(article)/usr/lib/python3.10/functools.py in _method(388)
return self.func(cls_or_self, *self.args, *args, **keywords)
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"."set_num" = 'MOC-135314' LIMIT 21SELECT ••• FROM "lego_baseset" WHERE "lego_baseset"."set_num" = 'MOC-135314' LIMIT 21
8.69
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(187)
context['reviewed_sets'] = article.get_reviewed_sets/home/nathan/rb/site/./blog/models.py in get_reviewed_sets(146)
sets.append(BaseSet.all_objects.get(set_num=sn))
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.17
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 "blog_articlecategory"."id", "blog_articlecategory"."name" FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
0.11
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)
SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."username" = 'icedragonj' LIMIT 21SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'icedragonj' LIMIT 21
0.38
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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(112)
user = get_user(user)/home/nathan/rb/site/./avatar/utils.py in get_user(33)
return get_user_model().objects.get_by_natural_key(username)
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" = 159879 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 159879 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
8 similar queries.
Duplicated 2 times.
0.17
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 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" = '570' 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" = '570' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
2 similar queries.
Duplicated 2 times.
0.30
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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()
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" = 570 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 570 LIMIT 21
0.14
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/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 "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" = 796841 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 796841 LIMIT 21
7 similar queries.
0.25
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/home/nathan/rb/site/./lego/models/sets.py in get_absolute_url(615)
return self.get_moc().get_absolute_url()/home/nathan/rb/site/./lego/models/mocs.py in get_absolute_url(765)
url = "/mocs/{0}/{1}/{2}/".format(self.set_num, parse.quote(self.designer.username, safe=''), slug)
41
{# cache 3600 'render_set_img_tn_2' set.id tn_options mtime set.get_absolute_url #} {# about 40ms for 50 images in debug, disabled as pending moc preview never works #}
42
{# Image #}
43
<div class="clearfix {% if set.is_figure %} js-hover-card{% endif %}" {% if set.is_figure %}data-hover="{% url 'minfig_hover' set.set_num %}"{% endif %}>
44
<a href="{{ set.get_absolute_url }}{% if inventory and not set.is_moc %}?inventory={{ inventory.version }}{% endif %}">
45
{% if not set.img_dir and set.is_figure %}
46
{% include 'lego/includes/render_set_img.html' with img_file='nil_mf.jpg' tn_options=tn_options %}
47
{% else %}
48
{% include 'lego/includes/render_set_img.html' with img_file=set.img_dir tn_options=tn_options %}
SELECT 1 AS "a" FROM "lego_mocswitherrors" WHERE "lego_mocswitherrors"."moc_id" = 159123 LIMIT 1SELECT ••• FROM "lego_mocswitherrors" WHERE "lego_mocswitherrors"."moc_id" = 159123 LIMIT 1
0.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/home/nathan/rb/site/./lego/models/mocs.py in is_alternate(204)
if not self.is_pending and MocsWithErrors.objects.filter(moc=self).exists():
181
{% endwith %}
182
{% else %}
183
{# repeat alt label check here so dont have to recalculate discount #}
184
{% if set.is_moc and set.get_moc.is_alternate %}
185
<span class="label label-altbuild size-10" title="Alternate Build MOC{% if set.get_moc.parent_set_2 %}{% else %} - only uses parts from {{ set.get_moc.parent_set_1 }}{% endif %}"><i class="fa fa-fw fa-retweet text-white"></i> <span class="hidden-xs"> Alt</span></span>
SELECTDISTINCT "taggit_tag"."id", "taggit_tag"."name", "taggit_tag"."slug", COUNT("blog_article"."id") AS "count" 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") LEFT OUTER JOIN "blog_article" ON ("taggit_taggeditem"."object_id" = "blog_article"."id" AND ("taggit_taggeditem"."content_type_id" = 12)) INNER JOIN "taggit_taggeditem" T5 ON ("taggit_tag"."id" = T5."tag_id") INNER JOIN "blog_article" T6 ON (T5."object_id" = T6."id" AND (T5."content_type_id" = 12)) WHERE ("django_content_type"."app_label" = 'blog' AND "django_content_type"."model" = 'article' AND T6."id" = 570) GROUP BY "taggit_tag"."id"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") LEFT OUTER JOIN "blog_article" ON ("taggit_taggeditem"."object_id" = "blog_article"."id" AND ("taggit_taggeditem"."content_type_id" = 12)) INNER JOIN "taggit_taggeditem" T5 ON ("taggit_tag"."id" = T5."tag_id") INNER JOIN "blog_article" T6 ON (T5."object_id" = T6."id" AND (T5."content_type_id" = 12)) WHERE ("django_content_type"."app_label" = 'blog' AND "django_content_type"."model" = 'article' AND T6."id" = 570) GROUP BY "taggit_tag"."id"
23.72
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)
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-22T08:13:26.142501+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.142704+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.142465+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.142983+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T08:13:26.142501+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.142704+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.142465+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.142983+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
2.22
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/home/nathan/rb/site/./ads/templatetags/ads/drawing.py in render_banner(291)
if not banners:
247
<h4 class="hidden-xs">TAGS</h4>
248
{% include 'blog/includes/render_tags.html' %}
249
250
{% render_banner 262 350 2 %}
251
252
{% include 'blog/includes/render_posts_preview_tabs.html' %}
SELECT (width*height) AS "area", "ads_banner"."id", "ads_banner"."width", "ads_banner"."height", "ads_banner"."start_date", "ads_banner"."end_date", "ads_banner"."country_code", "ads_banner"."html" FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T08:13:26.142501+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.142704+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.142465+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.142983+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-22T08:13:26.142501+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.142704+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.142465+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.142983+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
4 similar queries.
1.95
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/home/nathan/rb/site/./ads/templatetags/ads/drawing.py in render_banner(298)
banner = banners.order_by('-area', '?')[0]
247
<h4 class="hidden-xs">TAGS</h4>
248
{% include 'blog/includes/render_tags.html' %}
249
250
{% render_banner 262 350 2 %}
251
252
{% include 'blog/includes/render_posts_preview_tabs.html' %}
SELECT (width*height) AS "area", "ads_banner"."id", "ads_banner"."width", "ads_banner"."height", "ads_banner"."start_date", "ads_banner"."end_date", "ads_banner"."country_code", "ads_banner"."html" FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T08:13:26.156372+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.156540+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.156345+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.156775+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T08:13:26.156372+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.156540+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.156345+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.156775+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
2.52
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/home/nathan/rb/site/./ads/templatetags/ads/drawing.py in render_banner(291)
if not banners:
29
{% include 'blog/includes/render_posts_preview.html' with article=related_article %}
30
</div>
31
{% endfor %}
32
{% render_banner 262 600 5 %}
33
</div>
34
{% endif %}
35
<div id="tab_series" class="tab-pane {% if not related_articles %}active{% endif %}">
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-22T08:13:26.156372+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.156540+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.156345+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.156775+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-22T08:13:26.156372+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.156540+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.156345+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.156775+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
4 similar queries.
1.91
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/home/nathan/rb/site/./ads/templatetags/ads/drawing.py in render_banner(298)
banner = banners.order_by('-area', '?')[0]
29
{% include 'blog/includes/render_posts_preview.html' with article=related_article %}
30
</div>
31
{% endfor %}
32
{% render_banner 262 600 5 %}
33
</div>
34
{% endif %}
35
<div id="tab_series" class="tab-pane {% if not related_articles %}active{% endif %}">
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-22T08:13:26.164057+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.164143+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.164045+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.164275+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T08:13:26.164057+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.164143+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.164045+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.164275+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.72
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/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-22T08:13:26.164057+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.164143+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.164045+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.164275+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-22T08:13:26.164057+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.164143+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.164045+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.164275+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
4 similar queries.
1.61
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/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-22T08:13:26.175356+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.175467+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.175335+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.175604+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-22T08:13:26.175356+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.175467+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.175335+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.175604+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.90
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/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-22T08:13:26.175356+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.175467+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.175335+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.175604+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-22T08:13:26.175356+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-22T08:13:26.175467+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-22T08:13:26.175335+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-22T08:13:26.175604+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
4 similar queries.
2.03
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/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 %}
SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'blog' AND "django_content_type"."model" = 'article') LIMIT 21SELECT ••• FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'blog' AND "django_content_type"."model" = 'article') LIMIT 21
0.11
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 12 AND "rb_comments_pagelocked"."object_id" = 570) LIMIT 1SELECT ••• FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 12 AND "rb_comments_pagelocked"."object_id" = 570) LIMIT 1
0.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 (325701, 382953, 529523, 657890, 655383, 159879)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 (325701, 382953, 529523, 657890, 655383, 159879)
2 similar queries.
Duplicated 2 times.
0.20
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 12 AND "django_comments"."object_pk" = '570' 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" = '570' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
2 similar queries.
Duplicated 2 times.
0.33
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 (325701, 382953, 529523, 657890, 655383, 159879)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 (325701, 382953, 529523, 657890, 655383, 159879)
2 similar queries.
Duplicated 2 times.
0.17
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 325701 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 325701 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
8 similar queries.
0.13
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 325701 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 325701 LIMIT 21
7 similar queries.
0.14
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 325701) 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" = 325701) LIMIT 1
12 similar queries.
Duplicated 2 times.
0.25
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 325701) 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" = 325701) LIMIT 1
12 similar queries.
Duplicated 2 times.
0.21
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 "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" = 382953 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 382953 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
8 similar queries.
0.12
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 382953 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 382953 LIMIT 21
7 similar queries.
0.23
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 382953) 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" = 382953) LIMIT 1
12 similar queries.
Duplicated 2 times.
0.28
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 382953) 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" = 382953) LIMIT 1
12 similar queries.
Duplicated 2 times.
0.18
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 "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" = 529523 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 529523 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
8 similar queries.
0.11
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 529523 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 529523 LIMIT 21
7 similar queries.
0.14
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 529523) 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" = 529523) LIMIT 1
12 similar queries.
Duplicated 2 times.
0.22
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 529523) 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" = 529523) LIMIT 1
12 similar queries.
Duplicated 2 times.
0.19
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 "accounts_usersetting"."id", "accounts_usersetting"."user_id", "accounts_usersetting"."name", "accounts_usersetting"."value" FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 529523) LIMIT 21SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 529523) LIMIT 21
2 similar queries.
0.12
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/home/nathan/rb/site/./accounts/models/user_extras.py in is_public_plan(654)
return self.get_privacy_option('is_public_plan')/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_option(269)
options = self.get_privacy_options()/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_options(263)
options = UserSetting.objects.get(user=self, name=UserSetting.USER_SETTING_PRIVACY_OPTIONS)
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" = 657890 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 657890 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
8 similar queries.
0.11
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 657890 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 657890 LIMIT 21
7 similar queries.
0.16
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 657890) 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" = 657890) LIMIT 1
12 similar queries.
Duplicated 2 times.
0.23
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 657890) 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" = 657890) LIMIT 1
12 similar queries.
Duplicated 2 times.
0.20
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 "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" = 655383 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 655383 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
8 similar queries.
Duplicated 2 times.
0.16
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 655383 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 655383 LIMIT 21
7 similar queries.
Duplicated 2 times.
0.15
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 655383) 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" = 655383) LIMIT 1
12 similar queries.
Duplicated 4 times.
0.19
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 655383) 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" = 655383) LIMIT 1
12 similar queries.
Duplicated 4 times.
0.16
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 "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" = 159879 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 159879 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
8 similar queries.
Duplicated 2 times.
0.10
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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 "accounts_usersetting"."id", "accounts_usersetting"."user_id", "accounts_usersetting"."name", "accounts_usersetting"."value" FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 159879) LIMIT 21SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 159879) LIMIT 21
2 similar queries.
0.10
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.html', context)/home/nathan/rb/site/./accounts/models/user_extras.py in is_public_plan(654)
return self.get_privacy_option('is_public_plan')/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_option(269)
options = self.get_privacy_options()/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_options(263)
options = UserSetting.objects.get(user=self, name=UserSetting.USER_SETTING_PRIVACY_OPTIONS)
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" = 655383 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 655383 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
8 similar queries.
Duplicated 2 times.
0.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 655383 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 655383 LIMIT 21
7 similar queries.
Duplicated 2 times.
0.16
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 655383) 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" = 655383) LIMIT 1
12 similar queries.
Duplicated 4 times.
0.16
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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" = 655383) 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" = 655383) LIMIT 1
12 similar queries.
Duplicated 4 times.
0.15
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
return blog_article(request, article_id)/home/nathan/rb/site/./blog/views.py in blog_article(208)
return cached_blog_article(request, article.id)/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
return render(request, 'blog/blog_article.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>
7 COMMENTS
https://rebrickable.com/blog/564/review-71786-1-zanes-ice-dragon-creature/