You may have heard the Bricks LA LEGO Convention was held recently. Some fan sites were advertising it, some had free ticket giveaways. I was lucky enough to be able to attend on the Saturday, here's a peek into what you may have missed.
Background
Held in the historic Southern Californian town of Pasadena, just outside Los Angeles. The town is famous for being featured in many movies and TV shows, most recently for being where The Big Bang Theory is set. Home to groundbreaking institutes like California Institute of Technology, and NASA's Jet Propulation Lab, it's no surprise a LEGO Fan Convention found a home here. LEGO has a long history with science and engineering, and a very popular relationship with NASA itself.
The actual event has been going for several years promoting the Adult Fan Of Lego (AFOL's) community and creations. Helping to inspire the next generation of Master Builders. Organized by LEGO superfan Ayleen Dority (the purple haired figure below), and her team of co-ordinators.
Stephen Pakbaz – Space / Mecha
Brandon Griffith – Art / Mosaic & Screen Scenes
Tiffeny Thompson – Town / Castle & Train
David Dannecker – Nature
Chris Wight & Peter Aoun – Return of the Jedi Vignettes
Peter Aoun & Peter Abrahamson – Movie Posters
Bricks LA is an annual convention for Adult Fans Of LEGO® to get together and share their common love for the brick with the public. Held at the Pasadena Convention Center in sunny Southern California, Bricks LA will have over 19,000 square feet of fan built LEGO® models on display, vendors selling new, used, and vintage LEGO® sets, panels and presentations, and a play area for kids of all ages!
- BricksLA.com
The Event
Packed with MOCs, Panel Discussions, Play Area's, and Vendor's it was easy for me to spend the whole day here. Without going into great detail I was actually planning on going on the Sunday also but due to a family emergency Saturday night I was unable to. Point being there was more than enough to hold my attention.
LEGO Logo Panel Talk
The first thing I did was attend a panel about the evolution of the LEGO logo. I will be frank and say upfront that this panel was probably only interesting to the most hardcore LEGO fan. I found it interesting and informative. The speaker, Alex Saar, began at the very beginning. Discussing every detail from font, company history, fan interpretations, packaging, and even occationally touching on any political history that may have impacted design choices.
Alex, while clearly not a professional speaker, carried himself with cool confidence. Involved with his local LUG (Lego User Group) he began getting 'deeper' in the AFOL community. He has a background in design which plays into his love of LEGO, and lent itself well to discuss a topic such as the LEGO Logo.
The Floor
After the talk I abandoned my wife and kids in the play area and headed to the MOC's, the reason I came. Separated by theme, there's lots to see. Below are some of my favorites. Where I could I stopped to chat to the designers, unfortunately I found that the most lacking aspect of the event. Most designers were nowhere to be found. But that can be pretty common with these sort of events, they want to check everything out too.
Trojan Horse built by Suzy Lentchner, based on the Greek legend. A smaller scale MOC but with great attention to detail, the horse is absolutley perfect, I especially like the drunk soldiers on the floor.
City Skylines built by G Man & PT McEwen, inspired by the computer game City Skylines. I fell in love with this model. It was flawless, and much bigger than my photo shows. With architecture inspired from every part of the world, it stopped me in my tracks. Note the use of part 37352 Brick 1 x 2 x 1 Curved No Studs in the new Coral color. I also like the fact that the water keeps a basic blue plate with exposed studs. It looks more authentic to me than covering them in transparent tiles, or having loose round plates.
Samurai Castle built by Stephen, A fortress village in the style of fuedal Japan. Sprawling across four tables, this was a monster. The inspiration and theme is obvious and delivers a scene that draws you in. Note the dark purple trees, the part 2417 Plant Leaves 6 x 5's color palate has significantly grown in recent years, and MOC designers have lapped them up. Those dark purple ones either tells you this designer was a huge Elves fan or got a great deal wholesale.
Oscar Mayer Weinermobiles built by Bruce Lowell, for our non-US readers these may look odd. But to an American they are nostalgic and ultimate Americana. Oscar Mayer make hot dogs, and in 1936 Carl G Mayer (Oscar's nephew) had the great idea to make a car that looked like their product. The best thing about them is that drivers of Wienermobiles are called 'Hotdoggers'! These models capture the real thing fantastically.
Metal Beard's Sea Cow built by Robert Perez. This was one of the highlights of the show. Based on the ship from The Lego Movie, Robert decided to create this 8' long, 6' tall, 2' wide version. Knowing full well how many questions people would have about this set he had printed some fact sheets to display alongside the model. Here's the highlights:
32,000 pieces and 440 minifigures
Weighs 150lbs
Sails are hand sewed
Fully functional rigging to raise and lower the sails
It took over 4 years to build with the help of his son
This is the 8th version of it, each time they built it it grew larger
Only two glued pieces in the whole build
He was on hand to answer questions too (the guy at work in the photo) but it was very popular so I didn't interogate him too much. My favorite detail is the hand tied rigging, using LEGO string and thousands of 30374 Bar 4L. The details are truly impressive.
On the hour, every hour, Brick Built robots would battle it out to be crowned LEGO Bot Supreme. This events drew large, rowdy crowds. It was lots of fun.
Bridging Seasons built by Bobby and Kelli Eastman, displaying winter and spring in one awesome scene. I spoke to one of the designers, Kelli, and she told me that the blue tree was her design, explaining just how delicate it is. Once in place the model is not touched again.
This one had no card and no sign of a designer to ask, but this impressive airship deserved to be included.
EDIT: Thanks to RubyRedChevy for the info on this model. Double Eagle, Built by Stephen Pakbaz. He also oversees the Space and Mecha tables at Bricks LA. Check out his successful LEGO Ideas set 21104-1 NASA Mars Science Laboratory Curiosity Rover which was the fifth LEGO Ideas / Cuusoo set made.
The Fabuland Files built by Ben Rose is my guilty pleasure from the show. I'm a total sucker for retro themes like Fabuland and I love seeing MOC's that use these old, fogotten, parts. The actual scene clashes modern and retro perfectly. This ended up winning the Fun Little Thing (Town / Castle / Train) award.
Midas Casino buily by Corey Maxfield and Mason Hall. This domed roof was part of a much larger model of a casino. I found the use of part 45705 Windscreen 10 x 6 x 2 to be fascinating. Unfortunately, even though I was sure I had images of the full model, when I got home I didn't. Designers, if you're reading this I sincerely apologise. This model actually won Best in Show and Best Big Thing (Town / Castle / Train) awards which makes my blunder even more embarrasing.
Hot Rod Wrecker and Ford Mustang Hoonicorn built by George Malone. Cars were not a populat theme here, espeically Technic cars so I loved seeing these two models. The Hot Rod (designed by Steelman 14a) is fully powered and clearly features many custom parts. The Mustang (designed by CustomBricks.de) replicates Ken Blocks 1,400bhp Hoonicorn Mustang V2 (see this MOC from Loxlego). Those rims are stunning!
Teen Titan Tower built by Lego_creation06. Based on the popular DC Comicbook characters, the Teen Titans. Got to have the Superheroes represented somewhere, and Teen Titans has largly been ignored by LEGO so it's perfect for some fan creations.
Every album cover The Beatles released. I'm not a huge fan of The Beatles but some of these looked great. Lots of Greebling. Sgt Pepper was my favorite.
Ghost Rider Cosplay built by Norbert Labuguen. Something unique at this show, a wearble MOC. Labuguen boasts some top level achievements and is a regular on the LEGO-con circuit. He didn't disappoint with this model.
Star Wars Midifigures built by Miro Dudas. Some really great brick built figures from prolific MOC designer Miro (check him out here on Rebrickable). His love of Star Wars is obvious. His Baby Yoda won Best Small Art. He also built my favorite model of the event...
Star Wars Cinema built by Miro Dudas. Please forgive my terrible images of this model, I have not done it justice. It was a very popular model. I approached from the side, seeing a rotating woodland scene, thinking that's kinda cool but nothing I've not seen before. Then I turned to the front and saw what I can only explain as a stunning and trippy experience. Somehow your brain manages to completely forget what you saw at the back and convinces you that you really are actually watching Return of the Jedi. It completely sucks you in. I was able to speak with Miro about his model.
Designed for Star Wars' 40th Anniversary, Miro wanted to build a model that captured what it felt like when he went to the movies and saw Star Wars as a kid. I can tell you he hit the nail right on the head and sunk it with one blow.
This model won the People's Choice award, proving it's popularity. Miro went on to win more awards than any other designer at the show. Congrats Miro! Again check out his profile here.
Part of the Movie Poster categories. These were fantastic. There were more, these were my favorites.
Jaws built by Chris Wight
My Neighbor Totoro built by Claire Nordlow
Star Wars Return of the Jedi built by roninsfx
Another specialist category was Return of the Jedi Vignettes. Some really great builds. Theres alot to take in in this photo. Winners were IT'S A TRAP by Okay Yaramanoglu, and Super Star Destoryer Plunges Into Death Star by SPARKART, both on the bottom row of the image.
Moving onto some Harry Potter builds next. A great Umbridges Office (unfortunately with no card on display) (Edit: Thanks to Eric Law who let us know Umbridges Office was also him) and The Twins Jokeshop Built by Eric Law. The Jokeshop was packed with details acros it's multi-levelled wonderland.
And Newt's Suitcase built by LeAnna James-Gay. A fantastic representation of Newt's menagrie, even if it was a little light on actual beasts.
Jedi Space Face built by Bobby and Kelli Eastman. Fed up with going to conventions and having her kids moan they can't touch anything Kelli was inspired to make something kids could touch. If you've been to a LEGO-con on the West Coast of America in the last few years you have probably seen one of their pieces. Yes it's glued, but it would be crazy for it not to be. The scale of this mosaic is truly astounding. Her husband called her crazy when she first told him of her idea, but like a good husband he got right into helping her achieve her vision. The pictured kids are the ones that feature heavily in my reviews, when LEGO's involved they rarely give me alone time!
Bat-symbol built by the Members of LUGOLA (LEGO Users Group Of Los Angeles) designed by Peter Aoun. This looks stunning from afar, then you get up close and see how it's actually made. This is one really cool mosaic giving the ultimate tribute to the man in black (...and sometimes really really dark gray).
Sagrada Familia built by Dave Scherick. Done in the style of the Architecture series this uses some really interesting parts to replicate the unique style of the real life building. Being a religious building we will never get an official set of this building. This is what makes sites like Rebrickable so great. We can get what LEGO can't give us.
IEA Horizon Base built by Chris Malloy. This model has the finish of the new City Space sets with the feel of the Classic Space sets of our (my) youth. I can't tell you enough how much I like the take-off effect on the rocket.
Moonbase Condos built by Paul Neureiter. I can only describe this as a mash-up of Space and Ninjago City. I love the color, too many space sets default to gray.
Transformers built by xPLAYn. Various models of Transformers that actually transform. Designed to be kid friendly, so they are easy to transform and sturdy enough to survive a drop. The designer was very passionate about his creations and I promised him a shoutout as a thank you for his time. Check out his website here. Unfortunately his designs are not available on Rebrickable, I did try to convince him to join.
Blacktron Mobile Base built by Davin White. How could I not fall in love with this neon masterpiece.
Planet Express built by Okay Yaramanogla. A great microbuild of the Planet Express building featured in Futurama. I really want the instructions for this but the designer wasn't around to ask where I could get them from. Luckily, we have them! Check out Okay's MOCs here.
MONSTER ATTACK! built by Andrew Lee. This last one was my son's favorite. Robots, monsters, destroyed city, what more could a 5 year old want? This model won the Toadally Magnificent Mech (Space / Mecha) award, even though I'm not really sure what that means it definitely derserved it (i think).
Vendors
I didn't take a lot of photos of the vendors, you all know what that looks like I'm sure. But there were places selling new and vintage sets, custom parts, light sets, apparel, and, easily the most popular stalls, minifigures. I was actually disappointed at the lack of Technic sets available, most were system sets, a lot of Star Wars. There were some nice finds of rare Comic-con sets to be had if you were willing to fork over best part of a grand for the Dark Knight set (yes, it was way overpriced).
Play Area
After meeting up with my family in the play area my son was so proud to show me what he built, but I couldn't get past the absolute chaos surrounding me. My AFOL soul lost a little something looking at that floor.
Conclusion
I had a great time here. I wish I could have done more. The Bricks LA team were so great to deal with and were very accomodating of me. I just wish I could have gone back and spent more time talking to the designers, maybe next year.
I'm old in my building ways Jared. I like to build freehand, I just can't get used to digital building. Not from a lack of trying, I just kind of hate it.
Stephen Pakbaz is the designer and builder of the airship, Double Eagle. He oversees the Space and Mecha tables at Bricks LA, and, previously, he had one of his space designs reproduced as a Lego Ideas set.
It was a really great day. The kids were great for an hour or two. Waiting for me to stop talking technique to designers eventually got the better of them. They actually didn’t have many BHs. 2 or 3 Star Wars ones but that was it. And thanks for the spellcheck.
default
1004.96 ms (72 queries
including 58 similar
and 23 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" = 236) LIMIT 21SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 236) LIMIT 21
9 similar queries.
0.35
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", 'Bricks LA 2020 - LEGO Fan Convention') + SIMILARITY("blog_article"."body", 'Bricks LA 2020 - LEGO Fan Convention
You may have heard the Bricks LA LEGO Convention was held recently. Some fan sites were advertising it, some had free ticket giveaways. I was lucky enough to be able to attend on the Saturday, here''s a peek into what you may have missed.
Background
Held in the historic Southern Californian town of Pasadena, just outside Los Angeles. The town is famous for being featured in many movies and TV shows, most recently for being where The Big Bang Theory is set. Home to groundbreaking institutes like California Institute of Technology, and NASA''s Jet Propulation Lab, it''s no surprise a LEGO Fan Convention found a home here. LEGO has a long history with science and engineering, and a very popular relationship with NASA itself.
The actual event has been going for several years promoting the Adult Fan Of Lego (AFOL''s) community and creations. Helping to inspire the next generation of Master Builders. Organized by LEGO superfan Ayleen Dority (the purple haired figure below), and her team of co-ordinators.
Stephen Pakbaz – Space / Mecha
Brandon Griffith – Art / Mosaic & Screen Scenes
Tiffeny Thompson – Town / Castle & Train
David Dannecker – Nature
Chris Wight & Peter Aoun – Return of the Jedi Vignettes
Peter Aoun & Peter Abrahamson – Movie Posters
Bricks LA is an annual convention for Adult Fans Of LEGO® to get together and share their common love for the brick with the public. Held at the Pasadena Convention Center in sunny Southern California, Bricks LA will have over 19,000 square feet of fan built LEGO® models on display, vendors selling new, used, and vintage LEGO® sets, panels and presentations, and a play area for kids of all ages!
- BricksLA.com
The Event
Packed with MOCs, Panel Discussions, Play Area''s, and Vendor''s it was easy for me to spend the whole day here. Without going into great detail I was actually planning on going on the Sunday also but due to a family emergency Saturday night I was unable to. Point being there was more than enough to hold my attention.
LEGO Logo Panel Talk
The first thing I did was attend a panel about the evolution of the LEGO logo. I will be frank and say upfront that this panel was probably only interesting to the most hardcore LEGO fan. I found it interesting and informative. The speaker, Alex Saar, began at the very beginning. Discussing every detail from font, company history, fan interpretations, packaging, and even occationally touching on any political history that may have impacted design choices.
Alex, while clearly not a professional speaker, carried himself with cool confidence. Involved with his local LUG (Lego User Group) he began getting ''deeper'' in the AFOL community. He has a background in design which plays into his love of LEGO, and lent itself well to discuss a topic such as the LEGO Logo.
The Floor
After the talk I abandoned my wife and kids in the play area and headed to the MOC''s, the reason I came. Separated by theme, there''s lots to see. Below are some of my favorites. Where I could I stopped to chat to the designers, unfortunately I found that the most lacking aspect of the event. Most designers were nowhere to be found. But that can be pretty common with these sort of events, they want to check everything out too.
Trojan Horse built by Suzy Lentchner, based on the Greek legend. A smaller scale MOC but with great attention to detail, the horse is absolutley perfect, I especially like the drunk soldiers on the floor.
City Skylines built by G Man & PT McEwen, inspired by the computer game City Skylines. I fell in love with this model. It was flawless, and much bigger than my photo shows. With architecture inspired from every part of the world, it stopped me in my tracks. Note the use of part 37352 Brick 1 x 2 x 1 Curved No Studs in the new Coral color. I also like the fact that the water keeps a basic blue plate with exposed studs. It looks more authentic to me than covering them in transparent tiles, or having loose round plates.
Samurai Castle built by Stephen, A fortress village in the style of fuedal Japan. Sprawling across four tables, this was a monster. The inspiration and theme is obvious and delivers a scene that draws you in. Note the dark purple trees, the part 2417 Plant Leaves 6 x 5''s color palate has significantly grown in recent years, and MOC designers have lapped them up. Those dark purple ones either tells you this designer was a huge Elves fan or got a great deal wholesale.
Oscar Mayer Weinermobiles built by Bruce Lowell, for our non-US readers these may look odd. But to an American they are nostalgic and ultimate Americana. Oscar Mayer make hot dogs, and in 1936 Carl G Mayer (Oscar''s nephew) had the great idea to make a car that looked like their product. The best thing about them is that drivers of Wienermobiles are called ''Hotdoggers''! These models capture the real thing fantastically.
')) 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-25T02:20:32.393829+00:00'::timestamptz ANDNOT ("blog_article"."id" = 236)) 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", 'Bricks LA 2020 - LEGO Fan Convention') + SIMILARITY("blog_article"."body", 'Bricks LA 2020 - LEGO Fan Convention
You may have heard the Bricks LA LEGO Convention was held recently. Some fan sites were advertising it, some had free ticket giveaways. I was lucky enough to be able to attend on the Saturday, here''s a peek into what you may have missed.
Background
Held in the historic Southern Californian town of Pasadena, just outside Los Angeles. The town is famous for being featured in many movies and TV shows, most recently for being where The Big Bang Theory is set. Home to groundbreaking institutes like California Institute of Technology, and NASA''s Jet Propulation Lab, it''s no surprise a LEGO Fan Convention found a home here. LEGO has a long history with science and engineering, and a very popular relationship with NASA itself.
The actual event has been going for several years promoting the Adult Fan Of Lego (AFOL''s) community and creations. Helping to inspire the next generation of Master Builders. Organized by LEGO superfan Ayleen Dority (the purple haired figure below), and her team of co-ordinators.
Stephen Pakbaz – Space / Mecha
Brandon Griffith – Art / Mosaic & Screen Scenes
Tiffeny Thompson – Town / Castle & Train
David Dannecker – Nature
Chris Wight & Peter Aoun – Return of the Jedi Vignettes
Peter Aoun & Peter Abrahamson – Movie Posters
Bricks LA is an annual convention for Adult Fans Of LEGO® to get together and share their common love for the brick with the public. Held at the Pasadena Convention Center in sunny Southern California, Bricks LA will have over 19,000 square feet of fan built LEGO® models on display, vendors selling new, used, and vintage LEGO® sets, panels and presentations, and a play area for kids of all ages!
- BricksLA.com
The Event
Packed with MOCs, Panel Discussions, Play Area''s, and Vendor''s it was easy for me to spend the whole day here. Without going into great detail I was actually planning on going on the Sunday also but due to a family emergency Saturday night I was unable to. Point being there was more than enough to hold my attention.
LEGO Logo Panel Talk
The first thing I did was attend a panel about the evolution of the LEGO logo. I will be frank and say upfront that this panel was probably only interesting to the most hardcore LEGO fan. I found it interesting and informative. The speaker, Alex Saar, began at the very beginning. Discussing every detail from font, company history, fan interpretations, packaging, and even occationally touching on any political history that may have impacted design choices.
Alex, while clearly not a professional speaker, carried himself with cool confidence. Involved with his local LUG (Lego User Group) he began getting ''deeper'' in the AFOL community. He has a background in design which plays into his love of LEGO, and lent itself well to discuss a topic such as the LEGO Logo.
The Floor
After the talk I abandoned my wife and kids in the play area and headed to the MOC''s, the reason I came. Separated by theme, there''s lots to see. Below are some of my favorites. Where I could I stopped to chat to the designers, unfortunately I found that the most lacking aspect of the event. Most designers were nowhere to be found. But that can be pretty common with these sort of events, they want to check everything out too.
Trojan Horse built by Suzy Lentchner, based on the Greek legend. A smaller scale MOC but with great attention to detail, the horse is absolutley perfect, I especially like the drunk soldiers on the floor.
City Skylines built by G Man & PT McEwen, inspired by the computer game City Skylines. I fell in love with this model. It was flawless, and much bigger than my photo shows. With architecture inspired from every part of the world, it stopped me in my tracks. Note the use of part 37352 Brick 1 x 2 x 1 Curved No Studs in the new Coral color. I also like the fact that the water keeps a basic blue plate with exposed studs. It looks more authentic to me than covering them in transparent tiles, or having loose round plates.
Samurai Castle built by Stephen, A fortress village in the style of fuedal Japan. Sprawling across four tables, this was a monster. The inspiration and theme is obvious and delivers a scene that draws you in. Note the dark purple trees, the part 2417 Plant Leaves 6 x 5''s color palate has significantly grown in recent years, and MOC designers have lapped them up. Those dark purple ones either tells you this designer was a huge Elves fan or got a great deal wholesale.
Oscar Mayer Weinermobiles built by Bruce Lowell, for our non-US readers these may look odd. But to an American they are nostalgic and ultimate Americana. Oscar Mayer make hot dogs, and in 1936 Carl G Mayer (Oscar''s nephew) had the great idea to make a car that looked like their product. The best thing about them is that drivers of Wienermobiles are called ''Hotdoggers''! These models capture the real thing fantastically.
')) 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-25T02:20:32.393829+00:00'::timestamptz ANDNOT ("blog_article"."id" = 236)) ORDER BY 19 DESC, "blog_article"."published_date" DESCLIMIT 20
954.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(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-24T02:20:33.351729+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-24T02:20:33.351729+00:00'::timestamptz) ORDER BY "blog_articlestats"."hits" DESCLIMIT 20
2.63
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.29
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.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(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.31
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.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(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.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(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.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(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.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(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.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(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" = '2020-01-19T08:07:25.526190+00:00'::timestamptz AND "blog_article"."id" > 236) OR "blog_article"."published_date" > '2020-01-19T08:07:25.526190+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" = '2020-01-19T08:07:25.526190+00:00'::timestamptz AND "blog_article"."id" > 236) OR "blog_article"."published_date" > '2020-01-19T08:07:25.526190+00:00'::timestamptz)) ORDER BY "blog_article"."published_date" ASC, "blog_article"."id" ASCLIMIT 1
9.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(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" = '2020-01-19T08:07:25.526190+00:00'::timestamptz AND "blog_article"."id" < 236) OR "blog_article"."published_date" < '2020-01-19T08:07:25.526190+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" = '2020-01-19T08:07:25.526190+00:00'::timestamptz AND "blog_article"."id" < 236) OR "blog_article"."published_date" < '2020-01-19T08:07:25.526190+00:00'::timestamptz)) ORDER BY "blog_article"."published_date" DESC, "blog_article"."id" DESCLIMIT 1
0.32
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 "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 83025 LIMIT 21SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 83025 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)
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.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/./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" = 5 LIMIT 21SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 5 LIMIT 21
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)
SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."username" = 'jaredhinton' LIMIT 21SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'jaredhinton' LIMIT 21
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(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" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
Duplicated 4 times.
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 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" = '236' 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" = '236' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
2 similar queries.
Duplicated 2 times.
0.62
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" = 236 LIMIT 21SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 236 LIMIT 21
0.12
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)
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" = 236) 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" = 236) GROUP BY "taggit_tag"."id"
15.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-24T02:20:33.412145+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.412242+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.412128+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.412371+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-24T02:20:33.412145+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.412242+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.412128+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.412371+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.83
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-24T02:20:33.412145+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.412242+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.412128+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.412371+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-24T02:20:33.412145+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.412242+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.412128+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.412371+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
4 similar queries.
1.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/./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-24T02:20:33.423141+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.423202+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.423131+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.423317+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-24T02:20:33.423141+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.423202+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.423131+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.423317+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.60
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-24T02:20:33.423141+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.423202+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.423131+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.423317+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-24T02:20:33.423141+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.423202+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.423131+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.423317+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
4 similar queries.
1.27
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-24T02:20:33.428203+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.428263+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.428194+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.428373+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-24T02:20:33.428203+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.428263+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.428194+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.428373+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.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(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-24T02:20:33.428203+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.428263+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.428194+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.428373+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-24T02:20:33.428203+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.428263+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.428194+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.428373+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
4 similar queries.
1.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/./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-24T02:20:33.436458+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.436525+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.436447+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.436639+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-24T02:20:33.436458+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.436525+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.436447+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.436639+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.60
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-24T02:20:33.436458+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.436525+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.436447+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.436639+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-24T02:20:33.436458+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-24T02:20:33.436525+00:00'::timestamptz OR "ads_banner"."end_date" ISNULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-24T02:20:33.436447+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" ISNULLOR "ads_banner"."end_date" > '2026-01-24T02:20:33.436639+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASCLIMIT 1
4 similar queries.
1.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/./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.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/./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" = 236) LIMIT 1SELECT ••• FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 12 AND "rb_comments_pagelocked"."object_id" = 236) LIMIT 1
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/./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 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" = '236' 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" = '236' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
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)/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 "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" = 269581 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 269581 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
Duplicated 2 times.
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" = 269581 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 269581 LIMIT 21
8 similar queries.
Duplicated 2 times.
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/./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" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
Duplicated 4 times.
0.36
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" = 83025) LIMIT 21SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 83025) LIMIT 21
5 similar queries.
Duplicated 3 times.
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" = 269581 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 269581 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 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 "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" = 269581 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 269581 LIMIT 21
8 similar queries.
Duplicated 2 times.
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 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" = 365014 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 365014 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 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" = 365014 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 365014 LIMIT 21
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/./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" = 365014) 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" = 365014) LIMIT 1
8 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 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" = 365014) 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" = 365014) LIMIT 1
8 similar queries.
Duplicated 2 times.
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 "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" = 135223 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 135223 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
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" = 135223 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 135223 LIMIT 21
8 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 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" = 135223) LIMIT 21SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 135223) LIMIT 21
5 similar queries.
0.08
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" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
Duplicated 4 times.
0.08
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" = 83025) LIMIT 21SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 83025) LIMIT 21
5 similar queries.
Duplicated 3 times.
0.07
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" = 82121 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 82121 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
0.07
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" = 82121 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 82121 LIMIT 21
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/./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" = 335160 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 335160 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
0.08
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" = 335160 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 335160 LIMIT 21
8 similar queries.
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" = 335160) 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" = 335160) LIMIT 1
8 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 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" = 335160) 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" = 335160) LIMIT 1
8 similar queries.
Duplicated 2 times.
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/./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" = 9639 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 9639 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
0.08
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" = 9639 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 9639 LIMIT 21
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/./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" = 9639) 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" = 9639) LIMIT 1
8 similar queries.
Duplicated 2 times.
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" = 9639) 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" = 9639) LIMIT 1
8 similar queries.
Duplicated 2 times.
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/./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" = 9639) LIMIT 21SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 9639) LIMIT 21
5 similar queries.
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/./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" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 83025 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
Duplicated 4 times.
0.08
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" = 83025) LIMIT 21SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 83025) LIMIT 21
5 similar queries.
Duplicated 3 times.
0.08
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" = 273393 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 273393 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
12 similar queries.
0.08
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" = 273393 LIMIT 21SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 273393 LIMIT 21
8 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 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" = 273393) 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" = 273393) LIMIT 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/./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" = 273393) 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" = 273393) LIMIT 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/./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>
11 COMMENTS
How did the rest of your family like it? Was there a Brickheadz theme area? I like some of the MOCs based on those.
They actually didn’t have many BHs. 2 or 3 Star Wars ones but that was it.
And thanks for the spellcheck.