EDIT MODE

Before "Tales of the space age" was a set, it was a series of three MOCs on Rebrickable, as well as a humble idea trying to gather the 10,000 votes needed to make it through the first stage of the LEGO Ideas program. It is a great example of the fact that you don't always need to rely on IP to get the votes, achieving the needed votes in record time. According to my MOC Timeline, I built the three original MOCs all the way back in May 2022, a full year before the set was released. In 2023 john.carter released another set of three MOCs to celebrate the set release and it has taken me this long to get around to building one of them! Oh the joys of a build backlog...

Contents

Q&A
The MOC
The Build
Conclusion

Background

We have reviewed quite a few sets from LEGO Ideas, so I am going to assume you are familiar with the concept. What is interesting to me about this specific Idea is the creativity it sparked in the LEGO MOC community. Tales of... MOCs started popping up expanding on the theme. There are a variety of submissions; reality based space dioramas, sci-fi references (with a large amount from Star Wars!), as well as other non-space postcard type builds using a gradient of colour as well as some sort of foreground micro build element.

Here is a small sample of the MOCs on Rebrickable which have been inspired by the original idea. (Click any image to view the MOC).

 

Appologies if I missed your MOC, there are just so many to choose from! Tips and Bricks even did an article on the format. I would highly recommend giving it a read for a closer look at some Tales of MOCs.

At the recent Canberra Brick Show, there was a display with an impressive amount of Star Wars themed MOCs. Someone with more fandom knowledge than me can probably try to identify all the planets!

 

Q&A

We are not the first ones to score an interview with fan designer Jan Woźnica. You can check out another interview on the LEGO Ideas page here

Can you tell us something about yourself. Who is behind john.carter?
I'm 30-something AFOL from Warsaw, Poland. Apart from LEGO, my hobbies include science fiction and board games. MOCs I create are mostly inspired by hard SF novels or movies, but I do not shy from other themes. In my not-free time I work as a software developer.

LEGO set 21340-1 seems to be the ideas set with the least modifications made from the original idea. How was your experience working with the LEGO designers? Was the green one added simply so they had something to do?
I'm very pleased with the overall experience - the LEGO design team was amazing: very respectful and open to suggestions. Most of the changes between MOC and final product were due to design constraints of a commercial product (such as need to incorporate the dedicated hanger element). Pretty early on it turned out that there's a budget for a fourth picture in this set, so LEGO designers created the green one with some input from myself. I really like how it completed the colour palette.

It has been a while now since set 21340-1 was released. How was your experience overall with LEGO ideas? Do you have any experiences post release you would like to share?
I was amazed by a very positive reception of the set among afols and non-afols both. I'm fully aware that a purely display set might not be everybodys cup of tea, and the building process can be a bit repetitive. But lots of people display the set at home or at work; I even heard a copy hangs at the office of some NASA engineers ^^

How long have you been building with LEGO? Did you experience any Dark Ages?
I've been building and playing with LEGO ever since I got my first set at the age of two years old. No Dark Ages since, however nowadays I build much more then in my 20s. It pays off to have a dedicated build area, I guess.

What’s your favourite LEGO set, and why?
A: I think my favourite set, or at least one of my top 3, is the 21309 NASA Apollo Saturn V (and its reedition). Full of ingenious techniques, looks great at display and very faithful to the source material. What not to like?

What’s your favourite LEGO part, and why?
Tough question, especially with so many new bricks released every year. One of my favourites are definitely Mixel joints, since they allow for non discrete angles in all directions.

How do you feel about "Tales of..." becoming a MOC format, especially among Star Wars fans?
I love it! In my opinion postcard is a very inspiring format, and I'm glad my works made it more popular among AFOLs. I believe that people taking inspiration from others and making their own variations it the essence of building with LEGO.

Is this MOC your "last dive" into the series, or can we expect any more Tales of MOCs from you in future? Any other projects you are working on?
At the moment, with seven MOCs, I do consider Tales of the Space to be completed (and I'm very happy how it looks on my wall. But I really like the postcard format and relief form, so I'll be definitely doing something similar in the future.

Tales of the Space Age completed

 

The MOCs

Time to move onto the MOCs. All MOCs use slightly under 200 parts each and are avaliable for free.

MOC-73965 Ursa Major

For generations, humanity has looked up into the sky and dreamed of worlds beyond its own. Only since very recent the distant feels almost, but not quite yet, within our grasp. We reach further and further from our little planet and anticipation for the future grows larger with every generation. We can't wait to grow out of this world.

In this little build I've wanted to evoke this sense of longing for the stars, humanity's final destiny. The minimalist form seems perfect to me for this purpose and I hope you will find it fitting as well.

The finished build can be a great decoration for room of any science fiction fan, no matter if you decide to display it on a shelf or on a wall.

For this one I substituted dark pink instead of the coral, which I actually like better. The set version swaps out dark purple with dark pink, and has also removed the left side overhang, which allows for more placement options.
MOC-88626 The Loneliness of the Long Distance Probe
Continuing in the spirit of "Ursa Major", another build depicting humanity's conquest of the outer space.
This little MOC can be displayed standing, e.g. on a bookshelf, or can be hung on a wall.

This one my build has no significant changes. The set has a little space base, but I like the idea of the lonely Mars rover better. There is a real sense of isolation.
MOC-93624 Prelude to the Lithobreaking

The third installment of the "Tales of the Space Age" series. The image can be put on a shelf or hung upon a wall, on it's own, or next to other pictures.

This one I made some modifications to mine, as the arches I had were an older mold that doesn't fit a round plate. So my commet sticks out 1 plate further than it should, and you might notice some parts the wrong colour too.
The set has rotated the commet to make it parrallel to the ground, shooting past instead of coming into landing.

MOC-147669 The Last Dive

As I celebrate launch of my first LEGO Ideas set, 21340 Tales of the Space Age, I'd like to share with you three more pictures in the series I've built. Here's the second one: The Last Dive. It's closer in style to my original submission, but uses a dedicated hanger on the same height as pictures in the final set. I hope you enjoy this model as well as the previous ones.

I picked some slightly different colours for my flex tubes, but that is the only noticable change.

 

If you want to read some more blurbs about the first three, check out the instruction manual (English version here, more linked in the instructions tab).

The Build

I don't have progress shots of the first three, and the builds have a lot of similarity, so I will be focusing on MOC-147669 The Last Dive for this section.

It starts with the base and adding a couple of technic pin holes that will be used to keep things strong later. We then quickly build up the start of the gradient, as well as some cloud cover. For the gradient on this and most of the other MOCs I did some part substitutions for the rarer colours. Using the assembled lists tool, I altered a custom list as I went, editing it for any substitutions made. I don't have much bright light yellow, so swapped in some larger/smaller bricks/plates to fill up the space. This gives me a few more vertical lines than the actual design.

If you like me regularly ignore mold variations, beware! The dark tan jumper plates rely on the centre stud hole on the underside. Luckily I had a few more of the newer ones in my drawer. With the shelf done We work up to the row of clips that will be used to attach the hoses later.

The backs of the originals didn't incorporate the picture hook part 67139 and instead use regular technic parts to fashion something that works similarly. I sit mine on a shelf, so haven't bathered to get the hook part for this one, and can't comment on how effective the first one is. It would be pretty easy to retrofit the old hook stype to this MOC if needed.

These MOCs are a great example of no color/any color being used correctly. I updated my custom list with the colours I used for these as I went. Technic bracing on each side keeps the MOC nice and strong, which is especially important if you do end up hanging it on a wall. This bracing sometimes needs to work around the picture elements, so looks a little different on each.

Now onto the most scandelous part of the MOC, permanent part damage. I was really torn about cutting up my flex tubes, and if I wanted to get fresh ones for the slaughter, or just use what I had. I ended up using what I had, and swapped out the colours slightly from those recommended. Cutting the chewed ends off an old dark grey hose did make me feel slightly better about it. Once the hoses were in place I just chopped off the ends with scissors.

It is hard to see in the images, but there is a sneaky use of a black hammer to help space out the two layers of rings. The tubes on the bottom are just attached with friction and did pop out a couple of times when I was trying to tweak the placement, but if you don't touch it, it stays in place just fine. I quite like how the third colour of flex hose adds to the gradient of the rings.

A micro build for the satelitle, and a couple more clouds, completes the build.

Conclusion

I love these MOCs! They are absolutely works of art. The bright colour gradients mixing layers of plates and bricks, help catch the eye and draw the viewer in. These MOCs are a great example of how to perfectly frame a micro build. An orange clip and metalic cone is such a simple, insignificant space ship build; but put it in the setting of the whole MOC and it captures your imagination telling a whole story.

There is some clever parts use hidden throughout, with circular plates sitting snugly in arches, and I just have to mention the little tracks being left by the rover. The MOCs aren't huge extravagant investments, but little packages of joy, with most parts being easy to obtain (beware the sand red in MOC-147670 if you want to complete the set!). And of course now getting the parts is more accesible than ever with the first three modules avaliable as an official set.

They are enough, without being too much. Carefully selected elements that don't ever feel cluttered. Little postcards telling the tales of Space. I have run out of space on my small shelf, so I don't know if I will ever build the rest of Jan's installments, but they do look fabulous as a full set.

To give john.carter a follow, click on the big green button below. Please let me know your favourite Tales of... MOC in comments below!

 

Top

Disclaimer: Anything said in this post is the opinion of the author and not The LEGO Group. Parts and build photographs by icedragonj (© 2024 Rebrickable)

RebrickMat - LEGO Building Mat

In this review:

2022 Ford GT

15 COMMENTS

to your account to add or reply to comments.
  • Avatar image for Rebrickable user Annoraner
    5 months, 3 weeks ago Annoraner Level 12 MOC Designer
    Unfortunately never got it myself... hope Lego might be re-publish it and hopefully a few more getting added.
  • Avatar image for Rebrickable user Interstellar_1
    11 months, 2 weeks ago Interstellar_1 Level 15 MOC Designer
    Such well defined MOCs! Thanks for showcasing them!
  • Avatar image for Rebrickable user Kiwi-Bricks
    11 months, 3 weeks ago Kiwi-Bricks Level 12 MOC Designer
    Love this set! Unfortunately never got it, but made my own star wars version out of it. ^^
  • Avatar image for Rebrickable user AndrewG123
    11 months, 4 weeks ago AndrewG123 Level 17 MOC Designer
    Thanks for this article. Ever since the Ideas set came out I had considered buying it but never did. Of course now that it has been retired your article made me want to buy it. Our local pharmacy sells Lego and as luck would have it they still had one in stock at normal retail price.
  • Avatar image for Rebrickable user DrPhil
    11 months, 4 weeks ago DrPhil Level 17 MOC Designer
    Congrats to john.carter for not only creating great MOCs and having them published as an Ideas set, but also creating a new style of MOC and inspiring many to adapt this style! Amazing work!
  • Avatar image for Rebrickable user Lenarex
    11 months, 4 weeks ago Lenarex Level 32 MOC Designer PRO
    Thanks for the interview!
    I don't have this set. But I was pleased to see parts of the set on a shelf in a video on the YouTube channel of a Ukrainian screenwriter. He often reviews various fantasy films, analyzes plots, script finds and failures. These Lego postcards nicely complemented the atmosphere of the stories.
  • Avatar image for Rebrickable user M4_Mike
    11 months, 4 weeks ago M4_Mike Level 26 MOC Designer PRO
    Thanks for this great review and especially pointing to those awesome MOCs. Must admit I was completely unaware of those.
  • Avatar image for Rebrickable user schnabbo
    11 months, 4 weeks ago schnabbo Level 14 MOC Designer PRO
    I've build the MOC before i bought the set. And i have to say that -aside from the wall hangers- the MOC is even better! The stars from the rocket picture (horns through a headlight) look more realistic and the "half moons" of the "lonliness" look smoother. I don't like what Lego did there, but i am sure they had good reasons. Nevertheless i changed some things back to the original =)

    Thanks to john.carter for this magnificent piece of art.
  • Avatar image for Rebrickable user utm1996
    11 months, 4 weeks ago utm1996 Level 13 MOC Designer
    I love these sets! I'm a huge SciFi fan and these just hit home for me. Looking at them on the shelf, you can feel the calmness, or quietness or loneliness in each one. The excitement of exploration and the dangers it can present. The feel like accurate representation of what space travel has been, is and can be. 
    On a side note, I can't wait to add the lighting kit I got for these and build some of the mocs out there too!
  • Avatar image for Rebrickable user OrchardBuilds
    11 months, 4 weeks ago OrchardBuilds Level 33 MOC Designer PRO
    Here's the Star War Planets I could name from the Canberra postcard display.

    From left to right, top to bottom:

    Death Star over Jedha city (Rogue One)

    Deathstar beam impacting Scarif (Rogue One)

    Binary sunset over Tatooine (A New Hope)

    Yavin 4 and with Yavin Prime (A New Hope)

    Star Destroyer over Hoth (The Empire Strikes Back)

    Millenium Falcon escaping from the Exogorth (The Empire Strikes Back)

    Cloud City on Bespin (The Empire Strikes Back)

    Death Star II and the Forest Moon of Endor (Return of the Jedi)

    Healing Mustifar and Sith wayfinder (Rise of Skywalker)

    Lothal Capital City (Rebels)

    Star Destroyer over Lothal (Rebels)

    Death Star over Alderran (A New Hope)

    Thead City on Naboo (The Phantom Menace)

    Stinger Mantis approaching Dathomir (Jedi Fallen Order)

    Eye of Sion over Seatos (Ahsoka)

    Reminds me of one of the space stations/cities seen once in Rebels

    Royal Starship taking off from Naboo (The Phantom Menace)

    Cloning facilities on Kamino (Attack of the Clones)

    Coruscant (The Phantom Menace/Attack of the Clones/Revenge of the Sith)

    Acclimator over Umbara (The Clone Wars)

    Felucia (The Clone Wars/Revenge of the Sith)

    Kashyyyk (Revenge of the Sith)

    Mustifar (Revenge of the Sith)

    Tatooine again I think (A new Hope)

    The rest of the models on the bottom right are from the Lord of the Rings movies.
DJDT

Time

Resource usage

Resource Value
User CPU time 621.908 msec
System CPU time 5.047 msec
Total CPU time 626.955 msec
Elapsed time 1586.602 msec
Context switches 441 voluntary, 2 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

SQL queries from 1 connection

  • default 968.44 ms (124 queries including 104 similar and 54 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" = 791)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 791) LIMIT 21
9 similar queries.
0.50

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(115)
  article = get_object_or_404(Article, id=article_id)

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector",
       (SIMILARITY("blog_article"."title", 'MOC Review: Tales of a space age') + SIMILARITY("blog_article"."body", 'Before "Tales of the space age" was a set, it was a series of three MOCs on Rebrickable, as well as a humble idea trying to gather the 10,000 votes needed to make it through the first stage of the LEGO Ideas program. It is a great example of the fact that you don''t always need to rely on IP to get the votes, achieving the needed votes in record time. According to my MOC Timeline, I built the three original MOCs all the way back in May 2022, a full year before the set was released. In 2023 john.carter released another set of three MOCs to celebrate the set release and it has taken me this long to get around to building one of them! Oh the joys of a build backlog... Contents Q&AThe MOCThe BuildConclusion Background We have reviewed quite a few sets from LEGO Ideas, so I am going to assume you are familiar with the concept. What is interesting to me about this specific Idea is the creativity it sparked in the LEGO MOC community. Tales of... MOCs started popping up expanding on the theme. There are a variety of submissions; reality based space dioramas, sci-fi references (with a large amount from Star Wars!), as well as other non-space postcard type builds using a gradient of colour as well as some sort of foreground micro build element. Here is a small sample of the MOCs on Rebrickable which have been inspired by the original idea. (Click any image to view the MOC).   Appologies if I missed your MOC, there are just so many to choose from! Tips and Bricks even did an article on the format. I would highly recommend giving it a read for a closer look at some Tales of MOCs. At the recent Canberra Brick Show, there was a display with an impressive amount of Star Wars themed MOCs. Someone with more fandom knowledge than me can probably try to identify all the planets!   Q&A We are not the first ones to score an interview with fan designer Jan Woźnica. You can check out another interview on the LEGO Ideas page here.  Can you tell us something about yourself. Who is behind john.carter?I''m 30-something AFOL from Warsaw, Poland. Apart from LEGO, my hobbies include science fiction and board games. MOCs I create are mostly inspired by hard SF novels or movies, but I do not shy from other themes. In my not-free time I work as a software developer. LEGO set 21340-1 seems to be the ideas set with the least modifications made from the original idea. How was your experience working with the LEGO designers? Was the green one added simply so they had something to do?I''m very pleased with the overall experience - the LEGO design team was amazing: very respectful and open to suggestions. Most of the changes between MOC and final product were due to design constraints of a commercial product (such as need to incorporate the dedicated hanger element). Pretty early on it turned out that there''s a budget for a fourth picture in this set, so LEGO designers created the green one with some input from myself. I really like how it completed the colour palette. It has been a while now since set 21340-1 was released. How was your experience overall with LEGO ideas? Do you have any experiences post release you would like to share?I was amazed by a very positive reception of the set among afols and non-afols both. I''m fully aware that a purely display set might not be everybodys cup of tea, and the building process can be a bit repetitive. But lots of people display the set at home or at work; I even heard a copy hangs at the office of some NASA engineers ^^ How long have you been building with LEGO? Did you experience any Dark Ages?I''ve been building and playing with LEGO ever since I got my first set at the age of two years old. No Dark Ages since, however nowadays I build much more then in my 20s. It pays off to have a dedicated build area, I guess. What’s your favourite LEGO set, and why?A: I think my favourite set, or at least one of my top 3, is the ')) 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-02-01T14:49:01.629424+00:00'::timestamptz AND NOT ("blog_article"."id" = 791))
 ORDER BY
19 DESC, "blog_article"."published_date" DESC
 LIMIT
20
SELECT "blog_article"."id", "blog_article"."title", "blog_article"."author_id", "blog_article"."published_date", "blog_article"."is_active", "blog_article"."body", "blog_article"."meta_description", "blog_article"."meta_img", "blog_article"."slug", "blog_article"."category_id", "blog_article"."ads", "blog_article"."show_ads_for_set_num", "blog_article"."review_for_set_num", "blog_article"."status", "blog_article"."scheduled_net", "blog_article"."ready_for_review_date", "blog_article"."is_sensitive", "blog_article"."search_vector", (SIMILARITY("blog_article"."title", 'MOC Review: Tales of a space age') + SIMILARITY("blog_article"."body", 'Before "Tales of the space age" was a set, it was a series of three MOCs on Rebrickable, as well as a humble idea trying to gather the 10,000 votes needed to make it through the first stage of the LEGO Ideas program. It is a great example of the fact that you don''t always need to rely on IP to get the votes, achieving the needed votes in record time. According to my MOC Timeline, I built the three original MOCs all the way back in May 2022, a full year before the set was released. In 2023 john.carter released another set of three MOCs to celebrate the set release and it has taken me this long to get around to building one of them! Oh the joys of a build backlog... Contents Q&AThe MOCThe BuildConclusion Background We have reviewed quite a few sets from LEGO Ideas, so I am going to assume you are familiar with the concept. What is interesting to me about this specific Idea is the creativity it sparked in the LEGO MOC community. Tales of... MOCs started popping up expanding on the theme. There are a variety of submissions; reality based space dioramas, sci-fi references (with a large amount from Star Wars!), as well as other non-space postcard type builds using a gradient of colour as well as some sort of foreground micro build element. Here is a small sample of the MOCs on Rebrickable which have been inspired by the original idea. (Click any image to view the MOC).   Appologies if I missed your MOC, there are just so many to choose from! Tips and Bricks even did an article on the format. I would highly recommend giving it a read for a closer look at some Tales of MOCs. At the recent Canberra Brick Show, there was a display with an impressive amount of Star Wars themed MOCs. Someone with more fandom knowledge than me can probably try to identify all the planets!   Q&A We are not the first ones to score an interview with fan designer Jan Woźnica. You can check out another interview on the LEGO Ideas page here.  Can you tell us something about yourself. Who is behind john.carter?I''m 30-something AFOL from Warsaw, Poland. Apart from LEGO, my hobbies include science fiction and board games. MOCs I create are mostly inspired by hard SF novels or movies, but I do not shy from other themes. In my not-free time I work as a software developer. LEGO set 21340-1 seems to be the ideas set with the least modifications made from the original idea. How was your experience working with the LEGO designers? Was the green one added simply so they had something to do?I''m very pleased with the overall experience - the LEGO design team was amazing: very respectful and open to suggestions. Most of the changes between MOC and final product were due to design constraints of a commercial product (such as need to incorporate the dedicated hanger element). Pretty early on it turned out that there''s a budget for a fourth picture in this set, so LEGO designers created the green one with some input from myself. I really like how it completed the colour palette. It has been a while now since set 21340-1 was released. How was your experience overall with LEGO ideas? Do you have any experiences post release you would like to share?I was amazed by a very positive reception of the set among afols and non-afols both. I''m fully aware that a purely display set might not be everybodys cup of tea, and the building process can be a bit repetitive. But lots of people display the set at home or at work; I even heard a copy hangs at the office of some NASA engineers ^^ How long have you been building with LEGO? Did you experience any Dark Ages?I''ve been building and playing with LEGO ever since I got my first set at the age of two years old. No Dark Ages since, however nowadays I build much more then in my 20s. It pays off to have a dedicated build area, I guess. What’s your favourite LEGO set, and why?A: I think my favourite set, or at least one of my top 3, is the ')) 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-02-01T14:49:01.629424+00:00'::timestamptz AND NOT ("blog_article"."id" = 791)) ORDER BY 19 DESC, "blog_article"."published_date" DESC LIMIT 20
905.61

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(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-31T14:49:02.538065+00:00'::timestamptz)
 ORDER BY
"blog_articlestats"."hits" DESC
 LIMIT
20
SELECT ••• 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-31T14:49:02.538065+00:00'::timestamptz) ORDER BY "blog_articlestats"."hits" DESC LIMIT 20
2.73

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
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 646) LIMIT 21
9 similar queries.
0.19

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(147)
  article_series_images = get_series()

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

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 605)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 605) LIMIT 21
9 similar queries.
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(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
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 705) 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(52)
  {'name': 'Mini MOC Madness', 'tag': 'mini-moc-madness', 'article': Article.objects.get(id=705)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 616)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 616) LIMIT 21
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(53)
  {'name': 'Is This LEGO?', 'tag': 'is-this-lego', 'article': Article.objects.get(id=616)},

SELECT "blog_article"."id",
       "blog_article"."title",
       "blog_article"."author_id",
       "blog_article"."published_date",
       "blog_article"."is_active",
       "blog_article"."body",
       "blog_article"."meta_description",
       "blog_article"."meta_img",
       "blog_article"."slug",
       "blog_article"."category_id",
       "blog_article"."ads",
       "blog_article"."show_ads_for_set_num",
       "blog_article"."review_for_set_num",
       "blog_article"."status",
       "blog_article"."scheduled_net",
       "blog_article"."ready_for_review_date",
       "blog_article"."is_sensitive",
       "blog_article"."search_vector"
  FROM
"blog_article"
 WHERE
("blog_article"."is_active" AND "blog_article"."id" = 279)
 LIMIT
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 279) LIMIT 21
9 similar queries.
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(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
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 720) 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(55)
  {'name': 'New Set Releases', 'tag': 'sets', 'article': Article.objects.get(id=720)},

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

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
21
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND "blog_article"."id" = 249) LIMIT 21
9 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(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" = '2025-02-02T00:00:00.071171+00:00'::timestamptz AND "blog_article"."id" > 791) OR "blog_article"."published_date" > '2025-02-02T00:00:00.071171+00:00'::timestamptz))
 ORDER BY
"blog_article"."published_date" ASC, "blog_article"."id" ASC
 LIMIT
1
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND (("blog_article"."published_date" = '2025-02-02T00:00:00.071171+00:00'::timestamptz AND "blog_article"."id" > 791) OR "blog_article"."published_date" > '2025-02-02T00:00:00.071171+00:00'::timestamptz)) ORDER BY "blog_article"."published_date" ASC, "blog_article"."id" ASC LIMIT 1
0.47

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" = '2025-02-02T00:00:00.071171+00:00'::timestamptz AND "blog_article"."id" < 791) OR "blog_article"."published_date" < '2025-02-02T00:00:00.071171+00:00'::timestamptz))
 ORDER BY
"blog_article"."published_date" DESC, "blog_article"."id" DESC
 LIMIT
1
SELECT ••• FROM "blog_article" WHERE ("blog_article"."is_active" AND (("blog_article"."published_date" = '2025-02-02T00:00:00.071171+00:00'::timestamptz AND "blog_article"."id" < 791) OR "blog_article"."published_date" < '2025-02-02T00:00:00.071171+00:00'::timestamptz)) ORDER BY "blog_article"."published_date" DESC, "blog_article"."id" DESC LIMIT 1
0.44

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(156)
  article.prev = Article.get_previous_by_published_date(article)

/usr/lib/python3.10/functools.py in _method(388)
  return self.func(cls_or_self, *self.args, *args, **keywords)

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector"
  FROM
"lego_baseset"
 WHERE
"lego_baseset"."set_num" = 'MOC-147669'
 LIMIT
21
SELECT ••• FROM "lego_baseset" WHERE "lego_baseset"."set_num" = 'MOC-147669' LIMIT 21
5 similar queries.
8.55

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(187)
  context['reviewed_sets'] = article.get_reviewed_sets

/home/nathan/rb/site/./blog/models.py in get_reviewed_sets(146)
  sets.append(BaseSet.all_objects.get(set_num=sn))

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector"
  FROM
"lego_baseset"
 WHERE
"lego_baseset"."set_num" = 'MOC-73965'
 LIMIT
21
SELECT ••• FROM "lego_baseset" WHERE "lego_baseset"."set_num" = 'MOC-73965' LIMIT 21
5 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(187)
  context['reviewed_sets'] = article.get_reviewed_sets

/home/nathan/rb/site/./blog/models.py in get_reviewed_sets(146)
  sets.append(BaseSet.all_objects.get(set_num=sn))

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector"
  FROM
"lego_baseset"
 WHERE
"lego_baseset"."set_num" = 'MOC-93624'
 LIMIT
21
SELECT ••• FROM "lego_baseset" WHERE "lego_baseset"."set_num" = 'MOC-93624' LIMIT 21
5 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(187)
  context['reviewed_sets'] = article.get_reviewed_sets

/home/nathan/rb/site/./blog/models.py in get_reviewed_sets(146)
  sets.append(BaseSet.all_objects.get(set_num=sn))

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector"
  FROM
"lego_baseset"
 WHERE
"lego_baseset"."set_num" = 'MOC-88626'
 LIMIT
21
SELECT ••• FROM "lego_baseset" WHERE "lego_baseset"."set_num" = 'MOC-88626' LIMIT 21
5 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(187)
  context['reviewed_sets'] = article.get_reviewed_sets

/home/nathan/rb/site/./blog/models.py in get_reviewed_sets(146)
  sets.append(BaseSet.all_objects.get(set_num=sn))

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector"
  FROM
"lego_baseset"
 WHERE
"lego_baseset"."set_num" = '21340-1'
 LIMIT
21
SELECT ••• FROM "lego_baseset" WHERE "lego_baseset"."set_num" = '21340-1' LIMIT 21
5 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(187)
  context['reviewed_sets'] = article.get_reviewed_sets

/home/nathan/rb/site/./blog/models.py in get_reviewed_sets(146)
  sets.append(BaseSet.all_objects.get(set_num=sn))

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_moc"."baseset_ptr_id",
       "lego_moc"."designer_id",
       "lego_moc"."detail_url",
       "lego_moc"."gallery_url",
       "lego_moc"."bi_url",
       "lego_moc"."cad_url",
       "lego_moc"."video",
       "lego_moc"."bi_type",
       "lego_moc"."is_for_sale",
       "lego_moc"."is_hosted",
       "lego_moc"."cost",
       "lego_moc"."currency_id",
       "lego_moc"."parent_set_1_id",
       "lego_moc"."parent_set_2_id",
       "lego_moc"."parent_set_3_id",
       "lego_moc"."parent_set_4_id",
       "lego_moc"."parent_set_5_id",
       "lego_moc"."parent_inv_1_id",
       "lego_moc"."parent_inv_2_id",
       "lego_moc"."parent_inv_3_id",
       "lego_moc"."parent_inv_4_id",
       "lego_moc"."parent_inv_5_id",
       "lego_moc"."parent_type",
       "lego_moc"."is_allowed_premium",
       "lego_moc"."is_locked",
       "lego_moc"."last_social_post",
       "lego_moc"."is_review_requested"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
"lego_moc"."baseset_ptr_id" = 171734
 LIMIT
21
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE "lego_moc"."baseset_ptr_id" = 171734 LIMIT 21
4 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(194)
  moc.moc.spot = 'blog_review'

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_moc"."baseset_ptr_id",
       "lego_moc"."designer_id",
       "lego_moc"."detail_url",
       "lego_moc"."gallery_url",
       "lego_moc"."bi_url",
       "lego_moc"."cad_url",
       "lego_moc"."video",
       "lego_moc"."bi_type",
       "lego_moc"."is_for_sale",
       "lego_moc"."is_hosted",
       "lego_moc"."cost",
       "lego_moc"."currency_id",
       "lego_moc"."parent_set_1_id",
       "lego_moc"."parent_set_2_id",
       "lego_moc"."parent_set_3_id",
       "lego_moc"."parent_set_4_id",
       "lego_moc"."parent_set_5_id",
       "lego_moc"."parent_inv_1_id",
       "lego_moc"."parent_inv_2_id",
       "lego_moc"."parent_inv_3_id",
       "lego_moc"."parent_inv_4_id",
       "lego_moc"."parent_inv_5_id",
       "lego_moc"."parent_type",
       "lego_moc"."is_allowed_premium",
       "lego_moc"."is_locked",
       "lego_moc"."last_social_post",
       "lego_moc"."is_review_requested"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
"lego_moc"."baseset_ptr_id" = 95517
 LIMIT
21
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE "lego_moc"."baseset_ptr_id" = 95517 LIMIT 21
4 similar queries.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(194)
  moc.moc.spot = 'blog_review'

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_moc"."baseset_ptr_id",
       "lego_moc"."designer_id",
       "lego_moc"."detail_url",
       "lego_moc"."gallery_url",
       "lego_moc"."bi_url",
       "lego_moc"."cad_url",
       "lego_moc"."video",
       "lego_moc"."bi_type",
       "lego_moc"."is_for_sale",
       "lego_moc"."is_hosted",
       "lego_moc"."cost",
       "lego_moc"."currency_id",
       "lego_moc"."parent_set_1_id",
       "lego_moc"."parent_set_2_id",
       "lego_moc"."parent_set_3_id",
       "lego_moc"."parent_set_4_id",
       "lego_moc"."parent_set_5_id",
       "lego_moc"."parent_inv_1_id",
       "lego_moc"."parent_inv_2_id",
       "lego_moc"."parent_inv_3_id",
       "lego_moc"."parent_inv_4_id",
       "lego_moc"."parent_inv_5_id",
       "lego_moc"."parent_type",
       "lego_moc"."is_allowed_premium",
       "lego_moc"."is_locked",
       "lego_moc"."last_social_post",
       "lego_moc"."is_review_requested"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
"lego_moc"."baseset_ptr_id" = 115871
 LIMIT
21
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE "lego_moc"."baseset_ptr_id" = 115871 LIMIT 21
4 similar queries.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(194)
  moc.moc.spot = 'blog_review'

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_moc"."baseset_ptr_id",
       "lego_moc"."designer_id",
       "lego_moc"."detail_url",
       "lego_moc"."gallery_url",
       "lego_moc"."bi_url",
       "lego_moc"."cad_url",
       "lego_moc"."video",
       "lego_moc"."bi_type",
       "lego_moc"."is_for_sale",
       "lego_moc"."is_hosted",
       "lego_moc"."cost",
       "lego_moc"."currency_id",
       "lego_moc"."parent_set_1_id",
       "lego_moc"."parent_set_2_id",
       "lego_moc"."parent_set_3_id",
       "lego_moc"."parent_set_4_id",
       "lego_moc"."parent_set_5_id",
       "lego_moc"."parent_inv_1_id",
       "lego_moc"."parent_inv_2_id",
       "lego_moc"."parent_inv_3_id",
       "lego_moc"."parent_inv_4_id",
       "lego_moc"."parent_inv_5_id",
       "lego_moc"."parent_type",
       "lego_moc"."is_allowed_premium",
       "lego_moc"."is_locked",
       "lego_moc"."last_social_post",
       "lego_moc"."is_review_requested"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
"lego_moc"."baseset_ptr_id" = 110726
 LIMIT
21
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE "lego_moc"."baseset_ptr_id" = 110726 LIMIT 21
4 similar queries.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(194)
  moc.moc.spot = 'blog_review'

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_set"."baseset_ptr_id",
       "lego_set"."start_date",
       "lego_set"."end_date",
       "lego_theme"."id",
       "lego_theme"."parent_id",
       "lego_theme"."name",
       "lego_theme"."slug",
       "lego_theme"."set_count",
       "lego_theme"."t1_id",
       "lego_theme"."t1_name",
       "lego_theme"."t2_name",
       "lego_theme"."t3_name",
       "lego_theme"."lego_blurb",
       "lego_theme"."banner_img",
       "lego_theme"."descr",
       T4."id",
       T4."parent_id",
       T4."name",
       T4."slug",
       T4."set_count",
       T4."t1_id",
       T4."t1_name",
       T4."t2_name",
       T4."t3_name",
       T4."lego_blurb",
       T4."banner_img",
       T4."descr",
       T5."id",
       T5."parent_id",
       T5."name",
       T5."slug",
       T5."set_count",
       T5."t1_id",
       T5."t1_name",
       T5."t2_name",
       T5."t3_name",
       T5."lego_blurb",
       T5."banner_img",
       T5."descr",
       "lego_setstatstotal"."set_id",
       "lego_setstatstotal"."hits",
       "lego_setstatstotal"."builds",
       "lego_setstatstotal"."likes",
       "lego_setstatstotal"."bi_downloads",
       "lego_setstatstotal"."featured_hits",
       "lego_setstatstotal"."user_hits"
  FROM
"lego_set"
 INNER JOIN
"lego_baseset"
    ON
("lego_set"."baseset_ptr_id" = "lego_baseset"."id")
 INNER JOIN
"lego_theme"
    ON
("lego_baseset"."theme_id" = "lego_theme"."id")
  LEFT OUTER JOIN
"lego_theme" T4
    ON
("lego_theme"."parent_id" = T4."id")
  LEFT OUTER JOIN
"lego_theme" T5
    ON
(T4."parent_id" = T5."id")
  LEFT OUTER JOIN
"lego_setstatstotal"
    ON
("lego_baseset"."id" = "lego_setstatstotal"."set_id")
 WHERE
("lego_baseset"."is_active" AND "lego_baseset"."set_num" = '21340-1')
 LIMIT
21
SELECT ••• FROM "lego_set" INNER JOIN "lego_baseset" ON ("lego_set"."baseset_ptr_id" = "lego_baseset"."id") INNER JOIN "lego_theme" ON ("lego_baseset"."theme_id" = "lego_theme"."id") LEFT OUTER JOIN "lego_theme" T4 ON ("lego_theme"."parent_id" = T4."id") LEFT OUTER JOIN "lego_theme" T5 ON (T4."parent_id" = T5."id") LEFT OUTER JOIN "lego_setstatstotal" ON ("lego_baseset"."id" = "lego_setstatstotal"."set_id") WHERE ("lego_baseset"."is_active" AND "lego_baseset"."set_num" = '21340-1') LIMIT 21
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(200)
  context['lego_affiliate_links'] = get_lego_affiliate_links(article.show_ads_for_set_num_short)

/home/nathan/rb/site/./lego/buy/sets.py in get_lego_affiliate_links(474)
  set = get_or_none(Set.objects, set_num=set_num + '-1')

/home/nathan/rb/site/./rb/utils.py in get_or_none(605)
  return manager.get(**kwargs)

SELECT DISTINCT ("taggit_taggeditem"."object_id") AS "_prefetch_related_val",
       "taggit_tag"."id",
       "taggit_tag"."name",
       "taggit_tag"."slug"
  FROM
"taggit_tag"
 INNER JOIN
"taggit_taggeditem"
    ON
("taggit_tag"."id" = "taggit_taggeditem"."tag_id")
 INNER JOIN
"django_content_type"
    ON
("taggit_taggeditem"."content_type_id" = "django_content_type"."id")
 WHERE
("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'set' AND "taggit_taggeditem"."object_id" IN (147211))
SELECT ••• FROM "taggit_tag" INNER JOIN "taggit_taggeditem" ON ("taggit_tag"."id" = "taggit_taggeditem"."tag_id") INNER JOIN "django_content_type" ON ("taggit_taggeditem"."content_type_id" = "django_content_type"."id") WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'set' AND "taggit_taggeditem"."object_id" IN (147211))
0.42

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(200)
  context['lego_affiliate_links'] = get_lego_affiliate_links(article.show_ads_for_set_num_short)

/home/nathan/rb/site/./lego/buy/sets.py in get_lego_affiliate_links(474)
  set = get_or_none(Set.objects, set_num=set_num + '-1')

/home/nathan/rb/site/./rb/utils.py in get_or_none(605)
  return manager.get(**kwargs)

SELECT "lego_storesetitem"."id",
       "lego_storesetitem"."store_id",
       "lego_storesetitem"."is_used",
       "lego_storesetitem"."cost",
       "lego_storesetitem"."cost_usd",
       "lego_storesetitem"."sale_cost",
       "lego_storesetitem"."sku",
       "lego_storesetitem"."item_url",
       "lego_storesetitem"."quantity",
       "lego_storesetitem"."timestamp",
       "lego_storesetitem"."set_id",
       "lego_store"."id",
       "lego_store"."name",
       "lego_store"."is_active",
       "lego_store"."store_url",
       "lego_store"."add_item_url",
       "lego_store"."feed_url",
       "lego_store"."tag_line",
       "lego_store"."currency_code",
       "lego_store"."country_code",
       "lego_store"."bricklink_sellername",
       "lego_store"."ships_to"
  FROM
"lego_storesetitem"
 INNER JOIN
"lego_store"
    ON
("lego_storesetitem"."store_id" = "lego_store"."id")
 WHERE
(NOT "lego_storesetitem"."is_used" AND "lego_storesetitem"."set_id" = 147211 AND "lego_storesetitem"."store_id" IN (SELECT U0."id" FROM "lego_store" U0 WHERE (U0."is_active" AND UPPER(U0."store_url"::text) LIKE UPPER('%linksynergy.com%'))))
SELECT ••• FROM "lego_storesetitem" INNER JOIN "lego_store" ON ("lego_storesetitem"."store_id" = "lego_store"."id") WHERE (NOT "lego_storesetitem"."is_used" AND "lego_storesetitem"."set_id" = 147211 AND "lego_storesetitem"."store_id" IN (SELECT ••• FROM "lego_store" U0 WHERE (U0."is_active" AND UPPER(U0."store_url"::text) LIKE UPPER('%linksynergy.com%'))))
0.43

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(200)
  context['lego_affiliate_links'] = get_lego_affiliate_links(article.show_ads_for_set_num_short)

/home/nathan/rb/site/./lego/buy/sets.py in get_lego_affiliate_links(480)
  if not items:

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector",
       "lego_theme"."id",
       "lego_theme"."parent_id",
       "lego_theme"."name",
       "lego_theme"."slug",
       "lego_theme"."set_count",
       "lego_theme"."t1_id",
       "lego_theme"."t1_name",
       "lego_theme"."t2_name",
       "lego_theme"."t3_name",
       "lego_theme"."lego_blurb",
       "lego_theme"."banner_img",
       "lego_theme"."descr",
       T3."id",
       T3."parent_id",
       T3."name",
       T3."slug",
       T3."set_count",
       T3."t1_id",
       T3."t1_name",
       T3."t2_name",
       T3."t3_name",
       T3."lego_blurb",
       T3."banner_img",
       T3."descr",
       T4."id",
       T4."parent_id",
       T4."name",
       T4."slug",
       T4."set_count",
       T4."t1_id",
       T4."t1_name",
       T4."t2_name",
       T4."t3_name",
       T4."lego_blurb",
       T4."banner_img",
       T4."descr",
       "lego_setstatstotal"."set_id",
       "lego_setstatstotal"."hits",
       "lego_setstatstotal"."builds",
       "lego_setstatstotal"."likes",
       "lego_setstatstotal"."bi_downloads",
       "lego_setstatstotal"."featured_hits",
       "lego_setstatstotal"."user_hits"
  FROM
"lego_baseset"
 INNER JOIN
"lego_theme"
    ON
("lego_baseset"."theme_id" = "lego_theme"."id")
  LEFT OUTER JOIN
"lego_theme" T3
    ON
("lego_theme"."parent_id" = T3."id")
  LEFT OUTER JOIN
"lego_theme" T4
    ON
(T3."parent_id" = T4."id")
  LEFT OUTER JOIN
"lego_setstatstotal"
    ON
("lego_baseset"."id" = "lego_setstatstotal"."set_id")
 WHERE
("lego_baseset"."is_active" AND "lego_baseset"."set_num" = '21340-1')
 LIMIT
21
SELECT ••• FROM "lego_baseset" INNER JOIN "lego_theme" ON ("lego_baseset"."theme_id" = "lego_theme"."id") LEFT OUTER JOIN "lego_theme" T3 ON ("lego_theme"."parent_id" = T3."id") LEFT OUTER JOIN "lego_theme" T4 ON (T3."parent_id" = T4."id") LEFT OUTER JOIN "lego_setstatstotal" ON ("lego_baseset"."id" = "lego_setstatstotal"."set_id") WHERE ("lego_baseset"."is_active" AND "lego_baseset"."set_num" = '21340-1') LIMIT 21
0.38

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(201)
  context['lego_affiliate_links_set'] = get_or_none(BaseSet.objects, set_num=article.show_ads_for_set_num_short + '-1')

/home/nathan/rb/site/./rb/utils.py in get_or_none(605)
  return manager.get(**kwargs)

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" = 159879
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 159879 LIMIT 21
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

54 "dateModified": "{{ article.published_date|date:'c' }}",
55 "author": {
56 "@type": "Person",
57 "name": "{{ article.author.username }}"
58 },
59 "publisher": {
60 "@type": "Organization",
61 "name": "Rebrickable",

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

SELECT "countries_plus_country"."iso",
       "countries_plus_country"."iso3",
       "countries_plus_country"."iso_numeric",
       "countries_plus_country"."fips",
       "countries_plus_country"."name",
       "countries_plus_country"."capital",
       "countries_plus_country"."area",
       "countries_plus_country"."population",
       "countries_plus_country"."continent",
       "countries_plus_country"."tld",
       "countries_plus_country"."currency_code",
       "countries_plus_country"."currency_symbol",
       "countries_plus_country"."currency_name",
       "countries_plus_country"."phone",
       "countries_plus_country"."postal_code_format",
       "countries_plus_country"."postal_code_regex",
       "countries_plus_country"."languages",
       "countries_plus_country"."geonameid",
       "countries_plus_country"."neighbours",
       "countries_plus_country"."equivalent_fips_code"
  FROM
"countries_plus_country"
 WHERE
"countries_plus_country"."iso" = 'US'
 LIMIT
21
SELECT ••• FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21
0.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/templatetags/rb_geo.py in geo_currency(20)
  geo_data = user.geo.get_user_currency()

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

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

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

SELECT "blog_articlecategory"."id",
       "blog_articlecategory"."name"
  FROM
"blog_articlecategory"
 WHERE
"blog_articlecategory"."id" = 1
 LIMIT
21
SELECT ••• FROM "blog_articlecategory" WHERE "blog_articlecategory"."id" = 1 LIMIT 21
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)

18
19 {% block breadcrumbs %}
20 {% breadcrumb "Blog Posts" "blog_index" %}
21 {% breadcrumb article.category "blog_by_category" article.category %}
22 {% breadcrumb article.title "blog_article" article.id %}
23 {% endblock %}
24
25 {% block meta_description %}{{ article.meta_description }}{% endblock meta_description %}

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

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined"
  FROM
"auth_user"
 WHERE
"auth_user"."username" = 'icedragonj'
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'icedragonj' 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)

94 <div class="flex-row">
95 <div class="mr-10 hidden-xs" style="width: 50px">
96 <a href="{% url 'blog_by_author' article.author.username %}">
97 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
98 </a>
99 </div>
100 <div class="flex-expand">
101 <div class="heading-title heading-border-bottom heading-color mb-10">

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

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 159879
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 159879 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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]

94 <div class="flex-row">
95 <div class="mr-10 hidden-xs" style="width: 50px">
96 <a href="{% url 'blog_by_author' article.author.username %}">
97 <img data-src="{% avatar_url article.author.username 75 %}" width="50px" height="50px">
98 </a>
99 </div>
100 <div class="flex-expand">
101 <div class="heading-title heading-border-bottom heading-color mb-10">

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

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

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 %}
22 <li class="pull-right">
23 <a href="{% url 'blog_article_w_slug' article.id article.slug %}#comments">
24 <i class="fa fa-comment-o"></i>
25 {{ num_comments }}<span class="hidden-xs hidden-sm"> Comment{{ num_comments|pluralize }}</span>

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

SELECT "blog_articlestats"."article_id",
       "blog_articlestats"."hits"
  FROM
"blog_articlestats"
 WHERE
"blog_articlestats"."article_id" = 791
 LIMIT
21
SELECT ••• FROM "blog_articlestats" WHERE "blog_articlestats"."article_id" = 791 LIMIT 21
0.11

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)

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

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

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 402618
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 402618 LIMIT 21
18 similar queries. Duplicated 4 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/./lego/models/sets.py in get_absolute_url(615)
  return self.get_moc().get_absolute_url()

/home/nathan/rb/site/./lego/models/mocs.py in get_absolute_url(766)
  url = "/mocs/{0}/{1}/{2}/".format(self.set_num, parse.quote(self.designer.username, safe=''), slug)

233 {% endif %}
234 {% else %}
235 {% with settings.THUMBS_OPTIONS_MOC_TILE_TINY as tn_options %}
236 <div class="p-3"><a href="{{ s.get_absolute_url }}">
237 {% include 'lego/includes/render_set_img.html' with img_file=s.img_dir tn_options=tn_options img_only=True %}
238 {{ s }}
239 </a></div>
240 {% endwith %}

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

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 402618
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 402618 LIMIT 21
18 similar queries. Duplicated 4 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/./lego/models/sets.py in get_absolute_url(615)
  return self.get_moc().get_absolute_url()

/home/nathan/rb/site/./lego/models/mocs.py in get_absolute_url(766)
  url = "/mocs/{0}/{1}/{2}/".format(self.set_num, parse.quote(self.designer.username, safe=''), slug)

233 {% endif %}
234 {% else %}
235 {% with settings.THUMBS_OPTIONS_MOC_TILE_TINY as tn_options %}
236 <div class="p-3"><a href="{{ s.get_absolute_url }}">
237 {% include 'lego/includes/render_set_img.html' with img_file=s.img_dir tn_options=tn_options img_only=True %}
238 {{ s }}
239 </a></div>
240 {% endwith %}

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

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 402618
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 402618 LIMIT 21
18 similar queries. Duplicated 4 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/./lego/models/sets.py in get_absolute_url(615)
  return self.get_moc().get_absolute_url()

/home/nathan/rb/site/./lego/models/mocs.py in get_absolute_url(766)
  url = "/mocs/{0}/{1}/{2}/".format(self.set_num, parse.quote(self.designer.username, safe=''), slug)

233 {% endif %}
234 {% else %}
235 {% with settings.THUMBS_OPTIONS_MOC_TILE_TINY as tn_options %}
236 <div class="p-3"><a href="{{ s.get_absolute_url }}">
237 {% include 'lego/includes/render_set_img.html' with img_file=s.img_dir tn_options=tn_options img_only=True %}
238 {{ s }}
239 </a></div>
240 {% endwith %}

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

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 402618
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 402618 LIMIT 21
18 similar queries. Duplicated 4 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/./lego/models/sets.py in get_absolute_url(615)
  return self.get_moc().get_absolute_url()

/home/nathan/rb/site/./lego/models/mocs.py in get_absolute_url(766)
  url = "/mocs/{0}/{1}/{2}/".format(self.set_num, parse.quote(self.designer.username, safe=''), slug)

233 {% endif %}
234 {% else %}
235 {% with settings.THUMBS_OPTIONS_MOC_TILE_TINY as tn_options %}
236 <div class="p-3"><a href="{{ s.get_absolute_url }}">
237 {% include 'lego/includes/render_set_img.html' with img_file=s.img_dir tn_options=tn_options img_only=True %}
238 {{ s }}
239 </a></div>
240 {% endwith %}

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

SELECT "lego_setphoto"."id",
       "lego_setphoto"."set_id",
       "lego_setphoto"."photo_type_id",
       "lego_setphoto"."submitted_by_id",
       "lego_setphoto"."timestamp",
       "lego_setphoto"."is_active",
       "lego_setphoto"."is_primary"
  FROM
"lego_setphoto"
 WHERE
"lego_setphoto"."id" = 120553
 LIMIT
21
SELECT ••• FROM "lego_setphoto" WHERE "lego_setphoto"."id" = 120553 LIMIT 21
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./lego/models/sets.py in img_dir(751)
  file_dir = self.primary_photo.get_img_dir()

234 {% else %}
235 {% with settings.THUMBS_OPTIONS_MOC_TILE_TINY as tn_options %}
236 <div class="p-3"><a href="{{ s.get_absolute_url }}">
237 {% include 'lego/includes/render_set_img.html' with img_file=s.img_dir tn_options=tn_options img_only=True %}
238 {{ s }}
239 </a></div>
240 {% endwith %}
241 {% endif %}

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

SELECT "lego_baseset"."id",
       "lego_baseset"."set_num",
       "lego_baseset"."name",
       "lego_baseset"."year",
       "lego_baseset"."theme_id",
       "lego_baseset"."set_type",
       "lego_baseset"."num_parts",
       "lego_baseset"."default_inventory_id",
       "lego_baseset"."is_active",
       "lego_baseset"."is_accessory",
       "lego_baseset"."added_dt",
       "lego_baseset"."added_by_id",
       "lego_baseset"."last_modified_dt",
       "lego_baseset"."last_modified_by_id",
       "lego_baseset"."last_checked_for_bi",
       "lego_baseset"."descr",
       "lego_baseset"."primary_photo_id",
       "lego_baseset"."is_gear",
       "lego_baseset"."is_book",
       "lego_baseset"."search_vector",
       "lego_baseset"."mfhash_vector"
  FROM
"lego_baseset"
 WHERE
"lego_baseset"."id" = 147211
 LIMIT
21
SELECT ••• FROM "lego_baseset" WHERE "lego_baseset"."id" = 147211 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/./lego/models/sets.py in img_dir(751)
  file_dir = self.primary_photo.get_img_dir()

/home/nathan/rb/site/./lego/models/sets.py in get_img_dir(3133)
  return os.path.join('sets', self.set.set_num.lower(), str(self.id) + '.jpg')

234 {% else %}
235 {% with settings.THUMBS_OPTIONS_MOC_TILE_TINY as tn_options %}
236 <div class="p-3"><a href="{{ s.get_absolute_url }}">
237 {% include 'lego/includes/render_set_img.html' with img_file=s.img_dir tn_options=tn_options img_only=True %}
238 {{ s }}
239 </a></div>
240 {% endwith %}
241 {% endif %}

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

SELECT DISTINCT "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" = 791)
 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" = 791) GROUP BY "taggit_tag"."id"
20.05

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)

1 <div id="blog_tags" class="clearfix tags_list mb-30">
2 {% for tag in article.tags_w_count %}
3 <a href="{% url 'blog_by_tag' tag.slug %}" class="tag {% if request.user.is_blogger %}deltag{% endif %}">
4 <span class="txt">{{ tag.name }}</span>
5 <span class="num">
6 <span class="relative">

/home/nathan/rb/site/blog/templates/blog/includes/render_tags.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-31T14:49:02.620861+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.620974+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.620839+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.621103+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-31T14:49:02.620861+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.620974+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.620839+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.621103+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.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(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' %}
253
254 <div class="mt-30">

/home/nathan/rb/site/blog/templates/blog/blog_article.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-31T14:49:02.620861+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.620974+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.620839+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.621103+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
 ORDER BY
1 DESC, RANDOM() ASC
 LIMIT
1
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-31T14:49:02.620861+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.620974+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 350 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.620839+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.621103+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASC LIMIT 1
4 similar queries.
1.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/./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' %}
253
254 <div class="mt-30">

/home/nathan/rb/site/blog/templates/blog/blog_article.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-31T14:49:02.631612+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.631675+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.631602+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.631800+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-31T14:49:02.631612+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.631675+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.631602+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.631800+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.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/./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 %}">
36 {% for series in article_series_images %}

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

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-31T14:49:02.631612+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.631675+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.631602+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.631800+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
 ORDER BY
1 DESC, RANDOM() ASC
 LIMIT
1
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-31T14:49:02.631612+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.631675+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.631602+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.631800+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASC LIMIT 1
4 similar queries.
1.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/./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 %}">
36 {% for series in article_series_images %}

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

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-31T14:49:02.636163+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.636224+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.636154+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.636338+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-31T14:49:02.636163+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.636224+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.636154+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.636338+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.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/./ads/templatetags/ads/drawing.py in render_banner(291)
  if not banners:

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

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

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-31T14:49:02.636163+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.636224+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.636154+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.636338+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
 ORDER BY
1 DESC, RANDOM() ASC
 LIMIT
1
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-31T14:49:02.636163+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.636224+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.636154+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.636338+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASC LIMIT 1
4 similar queries.
1.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/./ads/templatetags/ads/drawing.py in render_banner(298)
  banner = banners.order_by('-area', '?')[0]

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

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

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-31T14:49:02.644059+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.644119+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.644049+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.644234+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-31T14:49:02.644059+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.644119+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.644049+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.644234+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
4 similar queries.
1.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/./ads/templatetags/ads/drawing.py in render_banner(291)
  if not banners:

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

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

SELECT (width*height) AS "area",
       "ads_banner"."id",
       "ads_banner"."width",
       "ads_banner"."height",
       "ads_banner"."start_date",
       "ads_banner"."end_date",
       "ads_banner"."country_code",
       "ads_banner"."html"
  FROM
"ads_banner"
 WHERE
("ads_banner"."start_date" < '2026-01-31T14:49:02.644059+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.644119+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.644049+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.644234+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US')
 ORDER BY
1 DESC, RANDOM() ASC
 LIMIT
1
SELECT ••• FROM "ads_banner" WHERE ("ads_banner"."start_date" < '2026-01-31T14:49:02.644059+00:00'::timestamptz AND ("ads_banner"."end_date" > '2026-01-31T14:49:02.644119+00:00'::timestamptz OR "ads_banner"."end_date" IS NULL) AND "ads_banner"."height" <= 600 AND "ads_banner"."start_date" < '2026-01-31T14:49:02.644049+00:00'::timestamptz AND "ads_banner"."width" <= 262 AND ("ads_banner"."end_date" IS NULL OR "ads_banner"."end_date" > '2026-01-31T14:49:02.644234+00:00'::timestamptz) AND "ads_banner"."country_code" = 'US') ORDER BY 1 DESC, RANDOM() ASC LIMIT 1
4 similar queries.
1.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/./ads/templatetags/ads/drawing.py in render_banner(298)
  banner = banners.order_by('-area', '?')[0]

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

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

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
21
SELECT ••• FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'blog' AND "django_content_type"."model" = 'article') LIMIT 21
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_page_locked_status(78)
  content_type = ContentType.objects.get(app_label=page_content_type.split('.')[0], model=page_content_type.split('.')[1])

4 {% load rb_comments_filters %}
5
6 <div id="comments-{{ page.id }}">
7 {% get_page_locked_status content_type page.id as is_page_locked %}
8
9 {% comment %}
10 Not using render_comment_list as it uses styles in ul/li that I can't seem to get working well with Smarty.
11 Using fluent-comments to hide unused fields and do ajax add/reply comment.

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT 1 AS "a"
  FROM
"rb_comments_pagelocked"
 WHERE
("rb_comments_pagelocked"."content_type_id" = 12 AND "rb_comments_pagelocked"."object_id" = 791)
 LIMIT
1
SELECT ••• FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 12 AND "rb_comments_pagelocked"."object_id" = 791) LIMIT 1
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_page_locked_status(79)
  is_locked = PageLocked.objects.filter(content_type=content_type, object_id=page_id).exists()

4 {% load rb_comments_filters %}
5
6 <div id="comments-{{ page.id }}">
7 {% get_page_locked_status content_type page.id as is_page_locked %}
8
9 {% comment %}
10 Not using render_comment_list as it uses styles in ul/li that I can't seem to get working well with Smarty.
11 Using fluent-comments to hide unused fields and do ajax add/reply comment.

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT (SUBSTRING(tree_path, 1, 10)) AS "tree_path_root",
       "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity",
       "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",
       "accounts_userplan"."user_id",
       "accounts_userplan"."plan_id",
       "accounts_userplan"."expiry_date",
       "accounts_userplan"."last_paid_date",
       "accounts_userplan"."is_subscription_active",
       "accounts_userplan"."subscription_period",
       "accounts_userplan"."payment_source",
       "accounts_userplan"."stripe_customer_id",
       "accounts_userplan"."stripe_subscription_id",
       "accounts_userplan"."paypal_subscription_id",
       "accounts_userplan"."base_free_plan_id",
       "accounts_userplan"."is_reminder_sent",
       "plans_plan"."id",
       "plans_plan"."type",
       "plans_plan"."version",
       "plans_plan"."stripe_id",
       "plans_plan"."paypal_id",
       "plans_plan"."cost_single",
       "plans_plan"."cost_monthly",
       "plans_plan"."cost_yearly",
       "accounts_userprofile"."user_id",
       "accounts_userprofile"."last_mod_inv",
       "accounts_userprofile"."last_activity",
       "accounts_userprofile"."last_ip",
       "accounts_userprofile"."last_country_id",
       "accounts_userprofile"."last_agent",
       "accounts_userprofile"."is_email_verified",
       "accounts_userprofile"."is_email_idle",
       "accounts_userprofile"."email_last_clicked",
       "accounts_userprofile"."api_token",
       "accounts_userprofile"."real_name",
       "accounts_userprofile"."location",
       "accounts_userprofile"."brickset_url",
       "accounts_userprofile"."mocpages_url",
       "accounts_userprofile"."flickr_url",
       "accounts_userprofile"."eurobricks_url",
       "accounts_userprofile"."youtube_url",
       "accounts_userprofile"."bricklink_url",
       "accounts_userprofile"."brickowl_url",
       "accounts_userprofile"."bricksafe_url",
       "accounts_userprofile"."website_url",
       "accounts_userprofile"."facebook_url",
       "accounts_userprofile"."twitter_url",
       "accounts_userprofile"."karma",
       "accounts_userprofile"."trophy_badge_id",
       "accounts_userprofile"."comments",
       "accounts_userprofile"."mfhash_vector",
       "accounts_userprofile"."is_muted",
       "accounts_userprofile"."is_banned",
       "accounts_userprofile"."is_suspected_pirate",
       "accounts_userprofile"."muted_until",
       "accounts_userprofile"."blocked_operations",
       "accounts_userprofile"."is_guest",
       "accounts_userprofile"."guest_token"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
  LEFT OUTER JOIN
"auth_user"
    ON
("django_comments"."user_id" = "auth_user"."id")
  LEFT OUTER JOIN
"accounts_userplan"
    ON
("auth_user"."id" = "accounts_userplan"."user_id")
  LEFT OUTER JOIN
"plans_plan"
    ON
("accounts_userplan"."plan_id" = "plans_plan"."id")
  LEFT OUTER JOIN
"accounts_userprofile"
    ON
("auth_user"."id" = "accounts_userprofile"."user_id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '791' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
 ORDER BY
1 DESC, "threadedcomments_comment"."tree_path" ASC
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") LEFT OUTER JOIN "auth_user" ON ("django_comments"."user_id" = "auth_user"."id") LEFT OUTER JOIN "accounts_userplan" ON ("auth_user"."id" = "accounts_userplan"."user_id") LEFT OUTER JOIN "plans_plan" ON ("accounts_userplan"."plan_id" = "plans_plan"."id") LEFT OUTER JOIN "accounts_userprofile" ON ("auth_user"."id" = "accounts_userprofile"."user_id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '791' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed") ORDER BY 1 DESC, "threadedcomments_comment"."tree_path" ASC
1.46

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(71)
  qs = self.get_queryset(context)

/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_queryset(45)
  return qs[:50], len(qs)

14 {% endcomment %}
15 {% if not comment_list %}
16 {# Get comments for a page #}
17 {% get_rb_comment_list for page as comment_list %}
18 {% get_comment_count for page as num_comments %}
19
20 {% if show_comment_count %}
21 <div class="clearfix">

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT ("auth_user_groups"."user_id") AS "_prefetch_related_val_user_id",
       "auth_group"."id",
       "auth_group"."name"
  FROM
"auth_group"
 INNER JOIN
"auth_user_groups"
    ON
("auth_group"."id" = "auth_user_groups"."group_id")
 WHERE
"auth_user_groups"."user_id" IN (1428379, 239496, 1153814, 489194, 382953, 382895, 529523, 465857, 72608, 929129, 159879, 760155, 1330797)
SELECT ••• FROM "auth_group" INNER JOIN "auth_user_groups" ON ("auth_group"."id" = "auth_user_groups"."group_id") WHERE "auth_user_groups"."user_id" IN (1428379, 239496, 1153814, 489194, 382953, 382895, 529523, 465857, 72608, 929129, 159879, 760155, 1330797)
2 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/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(71)
  qs = self.get_queryset(context)

/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_queryset(45)
  return qs[:50], len(qs)

14 {% endcomment %}
15 {% if not comment_list %}
16 {# Get comments for a page #}
17 {% get_rb_comment_list for page as comment_list %}
18 {% get_comment_count for page as num_comments %}
19
20 {% if show_comment_count %}
21 <div class="clearfix">

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

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

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(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 %}
18 {% get_comment_count for page as num_comments %}
19
20 {% if show_comment_count %}
21 <div class="clearfix">
22 <div class="heading-title heading-border-bottom heading-color">

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT (SUBSTRING(tree_path, 1, 10)) AS "tree_path_root",
       "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity",
       "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",
       "accounts_userplan"."user_id",
       "accounts_userplan"."plan_id",
       "accounts_userplan"."expiry_date",
       "accounts_userplan"."last_paid_date",
       "accounts_userplan"."is_subscription_active",
       "accounts_userplan"."subscription_period",
       "accounts_userplan"."payment_source",
       "accounts_userplan"."stripe_customer_id",
       "accounts_userplan"."stripe_subscription_id",
       "accounts_userplan"."paypal_subscription_id",
       "accounts_userplan"."base_free_plan_id",
       "accounts_userplan"."is_reminder_sent",
       "plans_plan"."id",
       "plans_plan"."type",
       "plans_plan"."version",
       "plans_plan"."stripe_id",
       "plans_plan"."paypal_id",
       "plans_plan"."cost_single",
       "plans_plan"."cost_monthly",
       "plans_plan"."cost_yearly",
       "accounts_userprofile"."user_id",
       "accounts_userprofile"."last_mod_inv",
       "accounts_userprofile"."last_activity",
       "accounts_userprofile"."last_ip",
       "accounts_userprofile"."last_country_id",
       "accounts_userprofile"."last_agent",
       "accounts_userprofile"."is_email_verified",
       "accounts_userprofile"."is_email_idle",
       "accounts_userprofile"."email_last_clicked",
       "accounts_userprofile"."api_token",
       "accounts_userprofile"."real_name",
       "accounts_userprofile"."location",
       "accounts_userprofile"."brickset_url",
       "accounts_userprofile"."mocpages_url",
       "accounts_userprofile"."flickr_url",
       "accounts_userprofile"."eurobricks_url",
       "accounts_userprofile"."youtube_url",
       "accounts_userprofile"."bricklink_url",
       "accounts_userprofile"."brickowl_url",
       "accounts_userprofile"."bricksafe_url",
       "accounts_userprofile"."website_url",
       "accounts_userprofile"."facebook_url",
       "accounts_userprofile"."twitter_url",
       "accounts_userprofile"."karma",
       "accounts_userprofile"."trophy_badge_id",
       "accounts_userprofile"."comments",
       "accounts_userprofile"."mfhash_vector",
       "accounts_userprofile"."is_muted",
       "accounts_userprofile"."is_banned",
       "accounts_userprofile"."is_suspected_pirate",
       "accounts_userprofile"."muted_until",
       "accounts_userprofile"."blocked_operations",
       "accounts_userprofile"."is_guest",
       "accounts_userprofile"."guest_token"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
  LEFT OUTER JOIN
"auth_user"
    ON
("django_comments"."user_id" = "auth_user"."id")
  LEFT OUTER JOIN
"accounts_userplan"
    ON
("auth_user"."id" = "accounts_userplan"."user_id")
  LEFT OUTER JOIN
"plans_plan"
    ON
("accounts_userplan"."plan_id" = "plans_plan"."id")
  LEFT OUTER JOIN
"accounts_userprofile"
    ON
("auth_user"."id" = "accounts_userprofile"."user_id")
 WHERE
("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '791' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
 ORDER BY
1 DESC, "threadedcomments_comment"."tree_path" ASC
 LIMIT
50
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") LEFT OUTER JOIN "auth_user" ON ("django_comments"."user_id" = "auth_user"."id") LEFT OUTER JOIN "accounts_userplan" ON ("auth_user"."id" = "accounts_userplan"."user_id") LEFT OUTER JOIN "plans_plan" ON ("accounts_userplan"."plan_id" = "plans_plan"."id") LEFT OUTER JOIN "accounts_userprofile" ON ("auth_user"."id" = "accounts_userprofile"."user_id") WHERE ("django_comments"."content_type_id" = 12 AND "django_comments"."object_pk" = '791' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed") ORDER BY 1 DESC, "threadedcomments_comment"."tree_path" ASC LIMIT 50
0.84

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

89 {% with cache_timeout=user.is_authenticated|yesno:"0,300" %}
90 {% cache cache_timeout 'comments_list_v2' request.user.is_authenticated page.id request.GET.page request.GET.showmore num_comments %}
91
92 <div class="comments {% if not comment_list.0 %} empty{% endif %} mb-30">
93 {% if use_context %}
94 {# Flat list of comments #}
95 {% for comment in comment_list.0|make_proxy_users %}
96 <ul class="comment list-unstyled comment-list-wrapper">

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT ("auth_user_groups"."user_id") AS "_prefetch_related_val_user_id",
       "auth_group"."id",
       "auth_group"."name"
  FROM
"auth_group"
 INNER JOIN
"auth_user_groups"
    ON
("auth_group"."id" = "auth_user_groups"."group_id")
 WHERE
"auth_user_groups"."user_id" IN (1428379, 239496, 1153814, 489194, 382953, 382895, 529523, 465857, 72608, 929129, 159879, 760155, 1330797)
SELECT ••• FROM "auth_group" INNER JOIN "auth_user_groups" ON ("auth_group"."id" = "auth_user_groups"."group_id") WHERE "auth_user_groups"."user_id" IN (1428379, 239496, 1153814, 489194, 382953, 382895, 529523, 465857, 72608, 929129, 159879, 760155, 1330797)
2 similar queries. Duplicated 2 times.
0.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

89 {% with cache_timeout=user.is_authenticated|yesno:"0,300" %}
90 {% cache cache_timeout 'comments_list_v2' request.user.is_authenticated page.id request.GET.page request.GET.showmore num_comments %}
91
92 <div class="comments {% if not comment_list.0 %} empty{% endif %} mb-30">
93 {% if use_context %}
94 {# Flat list of comments #}
95 {% for comment in comment_list.0|make_proxy_users %}
96 <ul class="comment list-unstyled comment-list-wrapper">

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 1428379
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 1428379 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 similar queries.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

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

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

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

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 1428379
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 1428379 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 1428379)
 LIMIT
1
SELECT ••• 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" = 1428379) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 1428379)
 LIMIT
1
SELECT ••• 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" = 1428379) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 239496
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 239496 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 similar queries.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

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

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

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

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 239496
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 239496 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 239496)
 LIMIT
1
SELECT ••• 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" = 239496) LIMIT 1
28 similar queries. Duplicated 2 times.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 239496)
 LIMIT
1
SELECT ••• 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" = 239496) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 1153814
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 1153814 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 similar queries.
0.19

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 1153814
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 1153814 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 1153814)
 LIMIT
1
SELECT ••• 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" = 1153814) LIMIT 1
28 similar queries. Duplicated 2 times.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 1153814)
 LIMIT
1
SELECT ••• 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" = 1153814) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 489194
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 489194 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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/./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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 489194
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 489194 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 489194)
 LIMIT
1
SELECT ••• 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" = 489194) LIMIT 1
28 similar queries. Duplicated 2 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/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 489194)
 LIMIT
1
SELECT ••• 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" = 489194) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 382953
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 382953 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 382953
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 382953 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 382953)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 382953) LIMIT 1
28 similar queries. Duplicated 2 times.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 382953)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 382953) LIMIT 1
28 similar queries. Duplicated 2 times.
0.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 382895
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 382895 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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/./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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 382895
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 382895 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 382895)
 LIMIT
1
SELECT ••• 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" = 382895) LIMIT 1
28 similar queries. Duplicated 2 times.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 382895)
 LIMIT
1
SELECT ••• 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" = 382895) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 382895)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 382895) LIMIT 21
7 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in is_public_plan(654)
  return self.get_privacy_option('is_public_plan')

/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_option(269)
  options = self.get_privacy_options()

/home/nathan/rb/site/./accounts/models/user_extras.py in get_privacy_options(263)
  options = UserSetting.objects.get(user=self, name=UserSetting.USER_SETTING_PRIVACY_OPTIONS)

60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}
65 {% endif %}
66 {% endif %}
67 {% if page.is_moc %}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 529523
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 529523 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 529523
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 529523 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 529523)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 529523) LIMIT 1
28 similar queries. Duplicated 4 times.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 529523)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 529523) LIMIT 1
28 similar queries. Duplicated 4 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "accounts_usersetting"."id",
       "accounts_usersetting"."user_id",
       "accounts_usersetting"."name",
       "accounts_usersetting"."value"
  FROM
"accounts_usersetting"
 WHERE
("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 529523)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 529523) LIMIT 21
7 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 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)

60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}
65 {% endif %}
66 {% endif %}
67 {% if page.is_moc %}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 465857
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 465857 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 similar queries.
0.19

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 465857
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 465857 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 465857)
 LIMIT
1
SELECT ••• 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" = 465857) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 465857)
 LIMIT
1
SELECT ••• 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" = 465857) LIMIT 1
28 similar queries. Duplicated 2 times.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 465857)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 465857) LIMIT 21
7 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(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)

60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}
65 {% endif %}
66 {% endif %}
67 {% if page.is_moc %}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 72608
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 72608 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 similar queries.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

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

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

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

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 72608
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 72608 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 72608)
 LIMIT
1
SELECT ••• 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" = 72608) LIMIT 1
28 similar queries. Duplicated 2 times.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 72608)
 LIMIT
1
SELECT ••• 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" = 72608) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 929129
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 929129 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 929129
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 929129 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 929129)
 LIMIT
1
SELECT ••• 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" = 929129) LIMIT 1
28 similar queries. Duplicated 4 times.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 929129)
 LIMIT
1
SELECT ••• 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" = 929129) LIMIT 1
28 similar queries. Duplicated 4 times.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 929129)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 929129) LIMIT 21
7 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 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)

60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}
65 {% endif %}
66 {% endif %}
67 {% if page.is_moc %}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
"threadedcomments_comment"."comment_ptr_id" = 759858
 LIMIT
21
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE "threadedcomments_comment"."comment_ptr_id" = 759858 LIMIT 21
5 similar queries. Duplicated 4 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

105 {% if not comment.open and not comment.close %}</li>{% endif %}
106 {% if comment.open %}
107 <ul class="comment list-unstyled comment-list-wrapper">{% endif %}
108 <li class="comment {% if comment.parent and comment.depth < 7 %}comment-reply{% endif %} comment-wrapper">
109 {% include "comments/comment.html" %}
110 {% for close in comment.close %}
111 </li>
112 </ul>

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 159879
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 159879 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "accounts_usersetting"."id",
       "accounts_usersetting"."user_id",
       "accounts_usersetting"."name",
       "accounts_usersetting"."value"
  FROM
"accounts_usersetting"
 WHERE
("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 159879)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 159879) LIMIT 21
7 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 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)

60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}
65 {% endif %}
66 {% endif %}
67 {% if page.is_moc %}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
"threadedcomments_comment"."comment_ptr_id" = 759858
 LIMIT
21
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE "threadedcomments_comment"."comment_ptr_id" = 759858 LIMIT 21
5 similar queries. Duplicated 4 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)

105 {% if not comment.open and not comment.close %}</li>{% endif %}
106 {% if comment.open %}
107 <ul class="comment list-unstyled comment-list-wrapper">{% endif %}
108 <li class="comment {% if comment.parent and comment.depth < 7 %}comment-reply{% endif %} comment-wrapper">
109 {% include "comments/comment.html" %}
110 {% for close in comment.close %}
111 </li>
112 </ul>

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 760155
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 760155 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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/./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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 760155
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 760155 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 760155)
 LIMIT
1
SELECT ••• 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" = 760155) LIMIT 1
28 similar queries. Duplicated 2 times.
0.38

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 760155)
 LIMIT
1
SELECT ••• 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" = 760155) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
"threadedcomments_comment"."comment_ptr_id" = 759923
 LIMIT
21
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE "threadedcomments_comment"."comment_ptr_id" = 759923 LIMIT 21
5 similar queries.
0.14

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

105 {% if not comment.open and not comment.close %}</li>{% endif %}
106 {% if comment.open %}
107 <ul class="comment list-unstyled comment-list-wrapper">{% endif %}
108 <li class="comment {% if comment.parent and comment.depth < 7 %}comment-reply{% endif %} comment-wrapper">
109 {% include "comments/comment.html" %}
110 {% for close in comment.close %}
111 </li>
112 </ul>

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 929129
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 929129 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 929129
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 929129 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 929129)
 LIMIT
1
SELECT ••• 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" = 929129) LIMIT 1
28 similar queries. Duplicated 4 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 929129)
 LIMIT
1
SELECT ••• 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" = 929129) LIMIT 1
28 similar queries. Duplicated 4 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 929129)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 929129) LIMIT 21
7 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/./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)

60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}
65 {% endif %}
66 {% endif %}
67 {% if page.is_moc %}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
"threadedcomments_comment"."comment_ptr_id" = 759858
 LIMIT
21
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE "threadedcomments_comment"."comment_ptr_id" = 759858 LIMIT 21
5 similar queries. Duplicated 4 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)

105 {% if not comment.open and not comment.close %}</li>{% endif %}
106 {% if comment.open %}
107 <ul class="comment list-unstyled comment-list-wrapper">{% endif %}
108 <li class="comment {% if comment.parent and comment.depth < 7 %}comment-reply{% endif %} comment-wrapper">
109 {% include "comments/comment.html" %}
110 {% for close in comment.close %}
111 </li>
112 </ul>

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 529523
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 529523 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "lego_designer"."user_ptr_id",
       "lego_designer"."auto_approve",
       "lego_designer"."num_auto_approved",
       "lego_designer"."last_checked_for_moc_errors"
  FROM
"lego_designer"
 INNER JOIN
"auth_user"
    ON
("lego_designer"."user_ptr_id" = "auth_user"."id")
 WHERE
"lego_designer"."user_ptr_id" = 529523
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 529523 LIMIT 21
18 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 529523)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 529523) LIMIT 1
28 similar queries. Duplicated 4 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT 1 AS "a"
  FROM
"lego_moc"
 INNER JOIN
"lego_baseset"
    ON
("lego_moc"."baseset_ptr_id" = "lego_baseset"."id")
 WHERE
("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 529523)
 LIMIT
1
SELECT ••• FROM "lego_moc" INNER JOIN "lego_baseset" ON ("lego_moc"."baseset_ptr_id" = "lego_baseset"."id") WHERE ("lego_baseset"."is_active" AND "lego_moc"."designer_id" = 529523) LIMIT 1
28 similar queries. Duplicated 4 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "accounts_usersetting"."id",
       "accounts_usersetting"."user_id",
       "accounts_usersetting"."name",
       "accounts_usersetting"."value"
  FROM
"accounts_usersetting"
 WHERE
("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 529523)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 529523) LIMIT 21
7 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/./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)

60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}
65 {% endif %}
66 {% endif %}
67 {% if page.is_moc %}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "django_comments"."id",
       "django_comments"."content_type_id",
       "django_comments"."object_pk",
       "django_comments"."site_id",
       "django_comments"."user_id",
       "django_comments"."user_name",
       "django_comments"."user_email",
       "django_comments"."user_url",
       "django_comments"."comment",
       "django_comments"."submit_date",
       "django_comments"."ip_address",
       "django_comments"."is_public",
       "django_comments"."is_removed",
       "threadedcomments_comment"."comment_ptr_id",
       "threadedcomments_comment"."title",
       "threadedcomments_comment"."parent_id",
       "threadedcomments_comment"."last_child_id",
       "threadedcomments_comment"."tree_path",
       "threadedcomments_comment"."newest_activity"
  FROM
"threadedcomments_comment"
 INNER JOIN
"django_comments"
    ON
("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id")
 WHERE
"threadedcomments_comment"."comment_ptr_id" = 759858
 LIMIT
21
SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE "threadedcomments_comment"."comment_ptr_id" = 759858 LIMIT 21
5 similar queries. Duplicated 4 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)

105 {% if not comment.open and not comment.close %}</li>{% endif %}
106 {% if comment.open %}
107 <ul class="comment list-unstyled comment-list-wrapper">{% endif %}
108 <li class="comment {% if comment.parent and comment.depth < 7 %}comment-reply{% endif %} comment-wrapper">
109 {% include "comments/comment.html" %}
110 {% for close in comment.close %}
111 </li>
112 </ul>

/home/nathan/rb/site/rb_comments/templates/comments/render_comment_list.html

SELECT "avatar_avatar"."id",
       "avatar_avatar"."user_id",
       "avatar_avatar"."primary",
       "avatar_avatar"."avatar",
       "avatar_avatar"."date_uploaded"
  FROM
"avatar_avatar"
 WHERE
"avatar_avatar"."user_id" = 1330797
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 1330797 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
16 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/./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]

36 {% if is_blocked %}
37 <img data-src="{% static settings.AVATAR_DEFAULT_URL %}" class="comment-avatar" width="75px" height="75px">
38 {% else %}
39 <img data-src="{% avatar_url comment.user 75 %}" class="comment-avatar" width="75px" height="75px" alt="Avatar image for Rebrickable user {{ comment.user }}">
40 {% endif %}
41 {# collapse/expand child comments #}
42 <div class="text-center pointer pt-10 js-collapse-comments" data-comment-id="{{ comment.id }}">
43 <i class="fa fa-minus-square-o fa-lg"></i>

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

SELECT "auth_user"."id",
       "auth_user"."password",
       "auth_user"."last_login",
       "auth_user"."is_superuser",
       "auth_user"."username",
       "auth_user"."first_name",
       "auth_user"."last_name",
       "auth_user"."email",
       "auth_user"."is_staff",
       "auth_user"."is_active",
       "auth_user"."date_joined",
       "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" = 1330797
 LIMIT
21
SELECT ••• FROM "lego_designer" INNER JOIN "auth_user" ON ("lego_designer"."user_ptr_id" = "auth_user"."id") WHERE "lego_designer"."user_ptr_id" = 1330797 LIMIT 21
18 similar queries.
0.14

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 1330797)
 LIMIT
1
SELECT ••• 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" = 1330797) LIMIT 1
28 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>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

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" = 1330797)
 LIMIT
1
SELECT ••• 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" = 1330797) LIMIT 1
28 similar queries. Duplicated 2 times.
0.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./blog/views.py in blog_article_w_slug(230)
  return blog_article(request, article_id)

/home/nathan/rb/site/./blog/views.py in blog_article(208)
  return cached_blog_article(request, article.id)

/home/nathan/rb/site/./blog/views.py in cached_blog_article(206)
  return render(request, 'blog/blog_article.html', context)

/home/nathan/rb/site/./accounts/models/user_extras.py in get_rolename(618)
  elif hasattr(self, 'designer') and Moc.objects.filter(designer=self.designer).exists():

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
59 {% else %}
60 <span class="label label-info" title="{{ comment.user.get_rolename.1 }}">{{ comment.user.get_rolename.0 }}</span>
61 {% endif %}
62 {% if not comment.user.plan.is_free %}
63 {% if comment.user.is_public_plan %}
64 {{ comment.user.get_plan_html }}

/home/nathan/rb/site/rb_comments/templates/comments/comment.html

Log messages

No messages logged.