Element

LDraw

Photo

There are 28 more photos of this Part
6116 is LEGO's DesignID for this brick in Polycarbonate.

Available Colors

Toggle Available Colors

This part appears in 47 Colors. Click on a colored part below to see the Sets and MOCs that use part 3941 Brick Round 2 x 2 with Axle Hole in that color. You can find an overview of all LEGO Colors here.

If a color is missing, it probably needs to be added to a Set Inventory.

In Sets | In MOCS | All Colors
Color Element Set Parts Sets From To MOC Parts MOCs
00005e 5e5e5e
HO Metallic Dark Gray
000061 616161
HO Titanium
00009b 9C9C9C
Modulex Foil Light Gray
00009b 9C9C9C
Modulex Light Gray
0000d8 D9D9D9
Glow in Dark White
0000f3 F4F4F4
Modulex White
0000fb FCFCFC
Opal Trans-Clear
0000fe FFFFFF
Glitter Trans-Clear
0000fe FFFFFF
Glitter Milky White
0000fe FFFFFF
Modulex Clear
0000fe FFFFFF
White 614301 2448 524 1979 2026 28385 4084
001dd3 05131D
Speckle Black-Copper
001dd3 05131D
Speckle Black-Gold
001dd3 05131D
Black 614326 1687 488 1979 2026 30686 5810
001dd3 05131D
Speckle Black-Silver
00296b 6B5A5A
Modulex Tile Gray
00347b 1B2A34
Chrome Black 31 2
003e15 3E3C39
Pearl Titanium
005803 575857
Pearl Dark Gray 27 4
006013 595D60
Modulex Foil Dark Gray
006013 595D60
Modulex Charcoal Gray
00632c 635F52
Trans-Black
00632c 635F52
Trans-Black IR Lens
00632c 635F52
Trans-Brown
006e0e 6C6E68
Dark Bluish Gray 4249139 995 236 2004 2026 21450 3419
006e2a 6D6E5C
Dark Gray 4239199 1 1 2003 2003 28 8
0087cf d06262
HO Rose
008804 898788
Flat Silver 217 7
00a00a 9BA19D
Light Gray 614302 383 100 1979 2004 2147 362
00a712 9CA3A8
Pearl Light Gray 10 1
00a80e A0A5A9
Light Bluish Gray 4211526 1337 317 2002 2026 32240 5908
00ac03 ABADAC
Pearl Very Light Gray
00b315 A5A9B4
Metallic Silver 40 5
00b315 A5ADB4
Metal
00d40e D4D5C9
Glow In Dark Opaque 1 1
00df00 E0E0E0
Chrome Silver 4143536 20 5 2001 2004 312 22
00e507 E6E3E0
Very Light Bluish Gray 157 11
00e50d E6E3DA
Very Light Gray
00e8bf c01111
HO Medium Red
00f201 F2F3F2
Pearl White
00fb00 FCFCFC
Trans-Clear 6514281 311 138 2001 2026 6522 1459
00fe00 FFFFFF
Milky White
00ff33 330000
Modulex Tile Brown
00ff8a 8B0000
Modulex Foil Red
0177d5 D67572
Sand Red 10 1
03d2b4 B52C20
Modulex Red
03f9b2 B31004
Rust 3 1
04d6cd CE3021
Chrome Red
04f4c8 C91A09
Trans-Red 6514289 20 9 2005 2025 649 250
04f4c8 C91A09
Red 614321 991 334 1989 2026 9726 2540
058393 945148
Two-tone Copper
059cf1 F2705E
Salmon
05f5c9 CA1F08
Vintage Red
07bcf3 F45C40
Modulex Pink Red
07c7ed EE5434
Bright Reddish Orange
08d486 872B17
Rust Orange
0aeceb EC4612
Neon Orange
0c755e 5E3F33
Umber Brown 54 1
0d7e57 57392C
Pearl Brown
0d8076 764D3B
Metallic Copper
0da1ac AD6140
Dark Nougat 6 1
0da395 965336
HO Light Brown
0e887c 7C503A
Light Brown 2 1
0ef1c9 CA4C0B
Reddish Orange
0fcb58 582A12
Reddish Brown 4211166 1877 409 2004 2026 31802 3366
107dad AE7A59
Copper
108e58 583927
Brown 614325 195 23 1991 2004 1146 156
108e58 583927
Opal Trans-Brown
109590 915C3C
Sienna Brown
10cdf3 F47B30
Modulex Orange
1180cf D09168
Nougat
11a9aa AB673A
Two-tone Gold
126975 755945
Medium Brown 4 1
128fb5 B67B50
Fabuland Brown
1480a9 AA7D55
Medium Nougat 6454167 78 21 2023 2026 434 89
14ebfe FF8014
Fabuland Red
14f2fe FF800D
Trans-Neon Orange 6273156 149 55 1993 2020 694 202
150473 737271
Two-tone Silver
1587b3 B48455
Flat Dark Gold
1599f6 F7AD63
Modulex Light Orange
1599f6 F7AD63
Modulex Foil Orange
15e7fd FE8A18
Orange 4141089 274 98 2000 2026 2422 435
15ffa8 A95500
Dark Orange 7 3
1691fb FCB76D
Trans-Flame Yellowish Orange 1 1
1745f5 F6D7B3
Light Nougat 6357786 11 4 2021 2024 189 33
176fcb CCA373
Warm Tan 1 1
17dcee EF9121
Fabuland Orange
17e1ef F08F1C
Glitter Trans-Orange
17e1ef F08F1C
Trans-Orange 6273154 107 50 2014 2025 1101 592
18718f 907450
Modulex Brown
18daba bb771b
HO Earth Orange
193d64 645A4C
Chrome Antique Brass
195cf2 F3CF9B
Very Light Orange
1996ab AC8247
Reddish Gold
199cf8 F9BA61
Light Orange
19addc DD9E47
Ochre Yellow
19e2f9 FA9C1C
Earth Orange 9 1
19ffb3 B46A00
Pearl Copper
1a70f2 F3C988
Light Tan
1a87fe FFCB78
Warm Yellowish Orange
1acadc DD982E
Curry
1aff35 352100
Dark Brown 6097432 24 5
1b4cdd DEC69C
Modulex Buff
1bf4fe FFA70B
Medium Orange 11 3
1c69db DCBC81
Pearl Light Gold
1cbaa9 AA7F2E
Pearl Gold 1 1
1d3a94 958A73
Dark Tan 6357806 15 6 2016 2023 2210 235
1d4ee3 E4CD9E
Tan 4125220 736 168 1999 2026 10359 1512
1d4ee3 E4CD9E
HO Tan
1dc0f7 F8BB3D
Bright Light Orange 21 5
1f7a5c 5C5030
Modulex Terracotta
1fc2da DBAC34
Metallic Gold
20a8fd FED557
Modulex Foil Yellow
20a8fd FED557
Modulex Ochre Yellow
2242cc cdc298
HO Light Gold
225bb3 b4a774
HO Gold
2267fa FBE696
Light Yellow 4 1
228efe FFE371
Modulex Light Yellow
22c5f1 F2CD37
Yellow 614324 873 269 1980 2026 6468 1556
22cef4 F5CD2F
Trans-Yellow 6273155 441 131 1986 2026 945 419
22cef4 F5CD2F
Opal Trans-Yellow
22f4fe FFCF0B
Clikits Yellow
22faf2 F3C305
Vintage Yellow
22ffd9 DAB000
Trans-Neon Yellow
236dfa FBE890
Trans-Fire Yellow
23acba BBA53D
Chrome Gold 7 3
2433f8 f9f1c7
HO Light Tan
27c5fe FFF03A
Bright Light Yellow 6301835 58 25 2020 2026 104 43
27ffea EBD800
Vibrant Yellow
2877f7 F8F184
Trans-Neon Green 6273157 222 73 1996 2021 1098 156
28cffe FFF230
Duplo Lime
296b5d 5d5c36
Dark Olive Green
2a6b9a 9B9A5A
HO Olive Green
2a6b9a 9B9A5A
Olive Green
2d2a6e 6D6E5C
HO Dark Gray
2d8ab8 b2b955
HO Dark Lime
2de0c5 BDC618
Modulex Lemon
2e44f9 f5fab7
HO Light Yellow
2eb6d1 C7D23C
Medium Lime
3244e3 D9E4A7
Trans-Bright Green 6549515 100 31 2019 2025 396 117
3244e3 D9E4A7
Light Lime
3244e3 D9E4A7
Glitter Trans-Bright Green
334eed DFEEA5
Yellowish Green
33f3e8 BBE90B
Lime 4527943 275 112 2005 2026 999 322
34bbfb D2FC43
Neon Green
34fff4 C0F500
Glitter Trans-Neon Green
37639a 899B5F
Metallic Green
377079 6A7944
Pearl Lime
3869e6 C9E788
Trans-Light Bright Green
38708f 7C9051
Modulex Olive Green
390e6e 6C6E68
Speckle DBGray-Silver
395297 879867
HO Metallic Green
3a20c5 BDC6AD
Glow In Dark Trans
3eb0b4 7DB538
Modulex Pastel Green
3eb0b4 7DB538
Modulex Foil Light Green
4928d9 C2DAB8
Light Green
54889e 4B9F4A
Bright Green 6526752 54 11 2003 2026 574 191
55327a 627a62
HO Dark Sand Green
5586fb 78FC78
Fabuland Lime
55af60 1E601E
Vintage Green
55ff64 006400
Modulex Foil Dark Green
5d46b5 84B68D
Glitter Trans-Green
5d46b5 84B68D
Trans-Green
5d46b5 84B68D
Opal Trans-Bright Green
5f7bb9 60BA76
Duplo Light Green
615ae4 94E5AB
Trans-Light Green
64b578 237841
Green 4251378 246 83 2004 2026 3528 719
657e89 468A5F
Duplo Medium Green
6726bb A0BCAC
Sand Green 6258145 53 8 2000 2025 456 116
6726bb A0BCAC
HO Sand Green
67ff8d 008E3C
Pearl Green
687adb 73DCA1
Medium Green 15 1
68aab2 3CB371
Chrome Green
6da846 184632
Dark Green 6055770 2 1 2014 2014 532 130
6da846 184632
HO Dark Green
7038d0 a3d1c0
HO Light Aqua
753ddb a7dccf
HO Dark Aqua
77a7b5 3FB69E
Duplo Turquoise
782bd6 B3D7D1
HO Aqua
782bd6 B3D7D1
Aqua
7a1dc2 ADC3C0
Light Aqua 6013704 11 3 2017 2026 95 17
7cb585 27867E
Modulex Aqua Green
7e45ee AEEFEC
Trans-Light Blue 6514282 453 186 2006 2026 2166 729
83e59c 10929d
HO Dark Turquoise
83ff9a 008F9B
Dark Turquoise 6290502 58 26 2020 2025 253 68
8478c4 68BCC5
Opal Trans-Light Blue
8478c4 68BCC5
Glitter Trans-Light Blue
8483ae 55A5AF
Light Turquoise
85b7be 36AEBF
Medium Azure 6224282 91 35 2020 2026 778 164
8796d9 5AC4DA
Pastel Blue 614311
87fbbc 039CBD
Vintage Blue
89ffcd 009ECE
Duplo Blue
8ba8b5 3E95B6
Duplo Medium Blue
8d695a 354e5a
HO Blue-gray
8d6fdc 7DBFDD
Sky Blue
8d7782 467083
Modulex Teal Blue
8d7db2 5b98b3
HO Cyan
8d7ecd 68AECE
Modulex Pastel Blue
8d7ecd 68AECE
Modulex Foil Light Blue
8dde63 0d4763
HO Metallic Blue
8de5ca 1591cb
HO Azure
8df6c8 078BC9
Dark Azure 6229071 75 19 2018 2024 1297 294
8e528b 5f7d8c
HO Metallic Sand Blue
8ebac2 3592C3
Maersk Blue
8f32ef C1DFF0
Trans-Very Lt Blue
8f35e2 B4D2E3
Light Blue
91d31d 05131D
[No Color/Any Color] 2809 517
93ffa2 0059A3
Pearl Blue
946fbe 6C96BF
Chrome Blue
94ffa5 0057A6
Modulex Foil Dark Blue
94ffa5 0057A6
Modulex Tile Blue
9551e8 9FC3E9
Bright Light Blue 6522321 17 5 2018 2025 128 38
9556a5 6e8aa6
HO Sand Blue
959efe 61AFFF
Modulex Medium Blue
9629f6 CFE2F7
Trans-Medium Blue 4216300 5 2
9645f6 B4D4F7
Trans-Light Royal Blue
96e563 0A3463
Dark Blue 4505985 241 37 2007 2026 1266 313
96e563 0A3463
HO Dark Blue
9796da 5A93DB
Medium Blue 10 1
97ffbe 0055BF
Blue 614323 376 124 1979 2026 3262 886
986cc7 7396c8
HO Medium Blue
9a3fa0 7988A1
Pearl Sand Blue
9d67a0 6074A1
Sand Blue 6492724 16 6 2002 2025 131 32
9dbe27 0A1327
Pearl Black
9f1fc6 AfB5C7
Modulex Light Bluish Gray
a296a2 4354A3
Violet
a2ff9f 0020A0
Opal Trans-Dark Blue
a2ff9f 0020A0
Trans-Dark Blue 4101741 20 9 1996 2013 203 78
a4a7da 4C61DB
Royal Blue
a57cc9 6874CA
Medium Bluish Violet
a5d1af 2032B0
Dark Blue-Violet
a748c9 9195CA
Light Lilac
a75cfe A3A9FF
Blue Violet
a81ce1 C9CAE2
Light Violet
aa30ca A5A5CB
Glitter Trans-Purple
aa30ca A5A5CB
Trans-Purple 6372260 10 1 2022 2022 29 8
ab5de3 9391E4
Medium Violet
aea090 3F3691
Dark Purple 4622176 178 65 2012 2025 1994 581
b11352 4D4C52
Modulex Black
bb5bb2 8D73B3
Glitter Trans-Medium Purple
bb5bb2 8D73B3
Trans-Medium Purple
bcc4a9 5F27AA
Duplo Dark Purple
bf1aec E1D5ED
Lavender 6223600 52 25 2018 2026 282 68
c3ff81 4B0082
Modulex Foil Violet
c6d2b6 8320B7
Opal Trans-Purple
cb5ab9 AC78BA
Medium Lavender 4620904
cc4b9e 96709F
Trans-Light Purple
cf6f96 8E5597
Reddish Lilac
d44983 845E84
Sand Purple
d6ff80 81007B
Purple 4 1
e18ca9 AA4D8E
Chrome Pink
e19b91 923978
Magenta 4243924 1 1 2005 2005 69 20
e1dbcd CE1D9B
Opal Trans-Dark Pink
e870c7 C870A0
Dark Pink 6422439 13 6 2023 2025 102 56
ea3ee3 E4ADC8
Glitter Trans-Pink
ea3ee3 E4ADC8
Trans-Pink
ea3ee3 E4ADC8
Bright Pink 6498748 14 8 2024 2026 53 24
ea85cc CD6298
Light Purple
ed87fd FE78B0
Clikits Pink
ee8ade DF6695
Trans-Dark Pink 6296852 65 22 2020 2025 293 70
ee8ade DF6695
Glitter Trans-Dark Pink
ef76f6 F785B1
Modulex Pink
ef76f6 F785B1
Medium Dark Pink
f496fe FF698F
Coral
f4fffe FF0040
Trans-Neon Red
f666fb FC97AC
Pink
f7ffd5 D60026
Pearl Red
f878fe FF879C
Duplo Pink
fa41f5 F6B7BF
Warm Pink
fa56bc BD7D85
Modulex Violet
fc32fd FECCCF
Light Pink
fd44fd FEBABD
Light Salmon
fece63 631314
HO Dark Red
ffe072 720E0F
Dark Red 6483834 15 5 2002 2024 987 182
to your account to add or reply to comments.
  • Avatar image for Rebrickable user PinkPony
    11 months, 2 weeks ago PinkPony Level 4
    At what point did they add supports to the central hole? I have two versions of this piece, and I suspect the one on the left is much older, perhaps early 80s.
  • Avatar image for Rebrickable user MagicBlue
    6 years, 1 month ago MagicBlue Level 4
    Here you are:



    as you can see, there are more diff. than the axlehole only
  • Avatar image for Rebrickable user thea
    9 years, 9 months ago thea Level 30 Set Manager
    http://www.bricklink.com/message.asp?ID=977713
    http://www.bricklink.com/message.asp?ID=977819

    What is rebrickable's thoughts on this?

    There are functional differences. I have some spare old round 2x2 bricks with a mold number 1 on them. If you try to force an antenna or other bar into the axle hole, you might succeed, but it will probably break the bar trying to get it out. This happens with most of the ones that have 3941. It is obvious from all the different mold numbers I have, that there was a lot of experimenting before they came up with one that could be used with a bar easily. I believe that is what lead to the change of part number to 6143.

    For the most part I have no way of determining which sets had which round bricks. My son played with and mixed up parts from most of the older sets. If you want to pursue this, I can dig around and try to find some sets that have been kept more intact.
    • Avatar image for Rebrickable user theskirrid
      9 years, 9 months ago theskirrid Level 30 MOC Designer ADMIN
      I think the best thing, as [per usual] there's no good record, is to do some mould variant pictures, and part notes that state 3941 is the earliest [with high grip].

      Unless we find good information on the changeover from 3941, there's not a lot else to do. To my mind [which is tiny] there doesn't seem much point making a part variant, when the difference is so minor, and so undocumented. The DesignID change was for the axlehole, you're right, the other changes to the base weren't substantial enough to require a new DesignID, so were probably for clutch strength. Anyone else have any ideas?

      Sheo, you're the variant master, thoughts?
  • Avatar image for Rebrickable user Froste
    12 years, 8 months ago Froste Level 12
    LDD has this as 6143
    • Avatar image for Rebrickable user theskirrid
      12 years, 8 months ago theskirrid Level 30 MOC Designer ADMIN
      Yeah, 6116, 6143 and 3941 are all interchangeable. LDD is usually one iteration behind for new design bricks. You can submit a bug report for this to the LDD team [or let Superkalle know on eurobricks], but they will eventually deprecate older design numbers. Rebrickable uses this part number and maps the others to it, as there is no difference to the bricks, it's just the centre axlehole was redesigned AFAIK.
Create an account to change the default filters used.
DJDT

Time

Resource usage

Resource Value
User CPU time 601.773 msec
System CPU time 16.043 msec
Total CPU time 617.816 msec
Elapsed time 660.473 msec
Context switches 430 voluntary, 12 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

SQL queries from 1 connection

  • default 41.84 ms (82 queries including 64 similar and 26 duplicates )
Query Timeline Time (ms) Action
SELECT "lego_part"."id",
       "lego_part"."part_num",
       "lego_part"."name",
       "lego_part"."part_cat_id",
       "lego_part"."notes",
       "lego_part"."is_active",
       "lego_part"."search_vector",
       "lego_part"."ldraw_part_id",
       "lego_part"."bricklink_part_id",
       "lego_part"."ignore_color_errors",
       "lego_part"."part_material_id",
       "lego_part"."is_bricklink_minifig",
       "lego_part"."is_bricklink_book",
       "lego_part"."is_bricklink_gear",
       "lego_part"."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partmaterial"."id",
       "lego_partmaterial"."name",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_part"
 INNER JOIN
"lego_partcategory"
    ON
("lego_part"."part_cat_id" = "lego_partcategory"."id")
 INNER JOIN
"lego_partmaterial"
    ON
("lego_part"."part_material_id" = "lego_partmaterial"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
("lego_part"."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
("lego_part"."id" = "lego_partstats"."part_id")
 WHERE
"lego_part"."part_num" = '3941'
 LIMIT
21
SELECT ••• FROM "lego_part" INNER JOIN "lego_partcategory" ON ("lego_part"."part_cat_id" = "lego_partcategory"."id") INNER JOIN "lego_partmaterial" ON ("lego_part"."part_material_id" = "lego_partmaterial"."id") LEFT OUTER JOIN "lego_partoverlay" ON ("lego_part"."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON ("lego_part"."id" = "lego_partstats"."part_id") WHERE "lego_part"."part_num" = '3941' LIMIT 21
2 similar queries. Duplicated 2 times.
0.89

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(122)
  part = get_or_none(Part.all_objects, part_num=slug1)

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

SELECT "lego_element"."id",
       "lego_element"."part_id",
       "lego_element"."color_id",
       "lego_element"."element_id",
       "lego_element"."design_id",
       "lego_element"."descr",
       "lego_element"."color_descr",
       "lego_element"."last_download_attempt",
       "lego_element"."num_download_attempts",
       "lego_element"."is_export_id",
       "lego_element"."is_active"
  FROM
"lego_element"
 INNER JOIN
"lego_color"
    ON
("lego_element"."color_id" = "lego_color"."id")
 WHERE
("lego_element"."is_active" AND "lego_element"."part_id" IN (106))
 ORDER BY
"lego_color"."name" ASC, "lego_element"."element_id" ASC
SELECT ••• FROM "lego_element" INNER JOIN "lego_color" ON ("lego_element"."color_id" = "lego_color"."id") WHERE ("lego_element"."is_active" AND "lego_element"."part_id" IN (106)) ORDER BY "lego_color"."name" ASC, "lego_element"."element_id" ASC
2 similar queries. Duplicated 2 times.
0.55

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(122)
  part = get_or_none(Part.all_objects, part_num=slug1)

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

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
"lego_partcolorstats"."part_id" IN (106)
SELECT ••• FROM "lego_partcolorstats" WHERE "lego_partcolorstats"."part_id" IN (106)
2 similar queries. Duplicated 2 times.
0.51

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(122)
  part = get_or_none(Part.all_objects, part_num=slug1)

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

SELECT "lego_partcost"."id",
       "lego_partcost"."part_id",
       "lego_partcost"."color_id",
       "lego_partcost"."is_used",
       "lego_partcost"."cost_avg",
       "lego_partcost"."cost_min",
       "lego_partcost"."cost_max",
       "lego_partcost"."cost_count"
  FROM
"lego_partcost"
 WHERE
"lego_partcost"."part_id" IN (106)
SELECT ••• FROM "lego_partcost" WHERE "lego_partcost"."part_id" IN (106)
2 similar queries. Duplicated 2 times.
0.34

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(122)
  part = get_or_none(Part.all_objects, part_num=slug1)

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

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary"
  FROM
"lego_partphoto"
 WHERE
("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" IN (106))
SELECT ••• FROM "lego_partphoto" WHERE ("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" IN (106))
2 similar queries. Duplicated 2 times.
0.29

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(122)
  part = get_or_none(Part.all_objects, part_num=slug1)

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

SELECT "lego_part"."id",
       "lego_part"."part_num",
       "lego_part"."name",
       "lego_part"."part_cat_id",
       "lego_part"."notes",
       "lego_part"."is_active",
       "lego_part"."search_vector",
       "lego_part"."ldraw_part_id",
       "lego_part"."bricklink_part_id",
       "lego_part"."ignore_color_errors",
       "lego_part"."part_material_id",
       "lego_part"."is_bricklink_minifig",
       "lego_part"."is_bricklink_book",
       "lego_part"."is_bricklink_gear",
       "lego_part"."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partmaterial"."id",
       "lego_partmaterial"."name",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_part"
 INNER JOIN
"lego_partcategory"
    ON
("lego_part"."part_cat_id" = "lego_partcategory"."id")
 INNER JOIN
"lego_partmaterial"
    ON
("lego_part"."part_material_id" = "lego_partmaterial"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
("lego_part"."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
("lego_part"."id" = "lego_partstats"."part_id")
 WHERE
"lego_part"."part_num" = '3941'
 LIMIT
21
SELECT ••• FROM "lego_part" INNER JOIN "lego_partcategory" ON ("lego_part"."part_cat_id" = "lego_partcategory"."id") INNER JOIN "lego_partmaterial" ON ("lego_part"."part_material_id" = "lego_partmaterial"."id") LEFT OUTER JOIN "lego_partoverlay" ON ("lego_part"."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON ("lego_part"."id" = "lego_partstats"."part_id") WHERE "lego_part"."part_num" = '3941' LIMIT 21
2 similar queries. Duplicated 2 times.
0.53

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(362)
  part = get_object_or_404(Part.all_objects, part_num=part_num)

SELECT "lego_element"."id",
       "lego_element"."part_id",
       "lego_element"."color_id",
       "lego_element"."element_id",
       "lego_element"."design_id",
       "lego_element"."descr",
       "lego_element"."color_descr",
       "lego_element"."last_download_attempt",
       "lego_element"."num_download_attempts",
       "lego_element"."is_export_id",
       "lego_element"."is_active"
  FROM
"lego_element"
 INNER JOIN
"lego_color"
    ON
("lego_element"."color_id" = "lego_color"."id")
 WHERE
("lego_element"."is_active" AND "lego_element"."part_id" IN (106))
 ORDER BY
"lego_color"."name" ASC, "lego_element"."element_id" ASC
SELECT ••• FROM "lego_element" INNER JOIN "lego_color" ON ("lego_element"."color_id" = "lego_color"."id") WHERE ("lego_element"."is_active" AND "lego_element"."part_id" IN (106)) ORDER BY "lego_color"."name" ASC, "lego_element"."element_id" ASC
2 similar queries. Duplicated 2 times.
0.33

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(362)
  part = get_object_or_404(Part.all_objects, part_num=part_num)

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
"lego_partcolorstats"."part_id" IN (106)
SELECT ••• FROM "lego_partcolorstats" WHERE "lego_partcolorstats"."part_id" IN (106)
2 similar queries. Duplicated 2 times.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(362)
  part = get_object_or_404(Part.all_objects, part_num=part_num)

SELECT "lego_partcost"."id",
       "lego_partcost"."part_id",
       "lego_partcost"."color_id",
       "lego_partcost"."is_used",
       "lego_partcost"."cost_avg",
       "lego_partcost"."cost_min",
       "lego_partcost"."cost_max",
       "lego_partcost"."cost_count"
  FROM
"lego_partcost"
 WHERE
"lego_partcost"."part_id" IN (106)
SELECT ••• FROM "lego_partcost" WHERE "lego_partcost"."part_id" IN (106)
2 similar queries. Duplicated 2 times.
0.14

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(362)
  part = get_object_or_404(Part.all_objects, part_num=part_num)

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary"
  FROM
"lego_partphoto"
 WHERE
("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" IN (106))
SELECT ••• FROM "lego_partphoto" WHERE ("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" IN (106))
2 similar queries. Duplicated 2 times.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(362)
  part = get_object_or_404(Part.all_objects, part_num=part_num)

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 106)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 106) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.14

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(372)
  part.img_element = part.get_img_dir(force_use_element=True)

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type",
       T3."id",
       T3."part_num",
       T3."name",
       T3."part_cat_id",
       T3."notes",
       T3."is_active",
       T3."search_vector",
       T3."ldraw_part_id",
       T3."bricklink_part_id",
       T3."ignore_color_errors",
       T3."part_material_id",
       T3."is_bricklink_minifig",
       T3."is_bricklink_book",
       T3."is_bricklink_gear",
       T3."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_partrelationship"
 INNER JOIN
"lego_part" T3
    ON
("lego_partrelationship"."part_child_id" = T3."id")
 INNER JOIN
"lego_partcategory"
    ON
(T3."part_cat_id" = "lego_partcategory"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
(T3."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
(T3."id" = "lego_partstats"."part_id")
 WHERE
("lego_partrelationship"."part_parent_id" = 106 AND "lego_partrelationship"."rel_type" = 'B' AND NOT ("lego_partrelationship"."part_child_id" = 106))
 ORDER BY
"lego_partstats"."num_sets" DESC
SELECT ••• FROM "lego_partrelationship" INNER JOIN "lego_part" T3 ON ("lego_partrelationship"."part_child_id" = T3."id") INNER JOIN "lego_partcategory" ON (T3."part_cat_id" = "lego_partcategory"."id") LEFT OUTER JOIN "lego_partoverlay" ON (T3."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON (T3."id" = "lego_partstats"."part_id") WHERE ("lego_partrelationship"."part_parent_id" = 106 AND "lego_partrelationship"."rel_type" = 'B' AND NOT ("lego_partrelationship"."part_child_id" = 106)) ORDER BY "lego_partstats"."num_sets" DESC
4 similar queries.
0.39

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(379)
  subparts = sorted(part.get_related_subparts_child(), key=lambda x: x.part_num)

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_subparts_child(768)
  return self.get_related_children(PartRelationship.REL_TYPE_SUBPART)

/home/nathan/rb/site/./lego/models/parts.py in get_related_children(743)
  return [p.part_child for p in parts]

SELECT "lego_partrelationshipflat"."part_id",
       "lego_partrelationshipflat"."a",
       "lego_partrelationshipflat"."m",
       "lego_partrelationshipflat"."p",
       "lego_partrelationshipflat"."am",
       "lego_partrelationshipflat"."ap",
       "lego_partrelationshipflat"."mp",
       "lego_partrelationshipflat"."amp"
  FROM
"lego_partrelationshipflat"
 WHERE
("lego_partrelationshipflat"."am" IS NOT NULL AND "lego_partrelationshipflat"."part_id" = 106)
 LIMIT
21
SELECT ••• FROM "lego_partrelationshipflat" WHERE ("lego_partrelationshipflat"."am" IS NOT NULL AND "lego_partrelationshipflat"."part_id" = 106) LIMIT 21
8.51

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(380)
  alts_molds = sorted(part.get_related_alts_and_molds(), key=lambda x: x.part_num)  # Follows nested alts/molds relationships

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_alts_and_molds(829)
  part_rel_flat = PartRelationshipFlat.objects.get(part=self, am__isnull=False)

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type",
       T3."id",
       T3."part_num",
       T3."name",
       T3."part_cat_id",
       T3."notes",
       T3."is_active",
       T3."search_vector",
       T3."ldraw_part_id",
       T3."bricklink_part_id",
       T3."ignore_color_errors",
       T3."part_material_id",
       T3."is_bricklink_minifig",
       T3."is_bricklink_book",
       T3."is_bricklink_gear",
       T3."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_partrelationship"
 INNER JOIN
"lego_part" T3
    ON
("lego_partrelationship"."part_child_id" = T3."id")
 INNER JOIN
"lego_partcategory"
    ON
(T3."part_cat_id" = "lego_partcategory"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
(T3."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
(T3."id" = "lego_partstats"."part_id")
 WHERE
("lego_partrelationship"."part_parent_id" = 106 AND "lego_partrelationship"."rel_type" = 'P' AND NOT ("lego_partrelationship"."part_child_id" = 106))
 ORDER BY
"lego_partstats"."num_sets" DESC
SELECT ••• FROM "lego_partrelationship" INNER JOIN "lego_part" T3 ON ("lego_partrelationship"."part_child_id" = T3."id") INNER JOIN "lego_partcategory" ON (T3."part_cat_id" = "lego_partcategory"."id") LEFT OUTER JOIN "lego_partoverlay" ON (T3."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON (T3."id" = "lego_partstats"."part_id") WHERE ("lego_partrelationship"."part_parent_id" = 106 AND "lego_partrelationship"."rel_type" = 'P' AND NOT ("lego_partrelationship"."part_child_id" = 106)) ORDER BY "lego_partstats"."num_sets" DESC
4 similar queries.
0.58

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(383)
  prints = sorted(part.get_related_prints_child(), key=lambda x: x.part_num)

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_prints_child(750)
  return self.get_related_children(PartRelationship.REL_TYPE_PRINT, limit=limit)

/home/nathan/rb/site/./lego/models/parts.py in get_related_children(743)
  return [p.part_child for p in parts]

SELECT "lego_element"."id",
       "lego_element"."part_id",
       "lego_element"."color_id",
       "lego_element"."element_id",
       "lego_element"."design_id",
       "lego_element"."descr",
       "lego_element"."color_descr",
       "lego_element"."last_download_attempt",
       "lego_element"."num_download_attempts",
       "lego_element"."is_export_id",
       "lego_element"."is_active"
  FROM
"lego_element"
 INNER JOIN
"lego_color"
    ON
("lego_element"."color_id" = "lego_color"."id")
 WHERE
("lego_element"."is_active" AND "lego_element"."part_id" IN (22234, 11323, 57874, 41417, 64988, 64989, 64990, 65574, 70235, 70234, 70233, 70972, 70974, 31728))
 ORDER BY
"lego_color"."name" ASC, "lego_element"."element_id" ASC
SELECT ••• FROM "lego_element" INNER JOIN "lego_color" ON ("lego_element"."color_id" = "lego_color"."id") WHERE ("lego_element"."is_active" AND "lego_element"."part_id" IN (22234, 11323, 57874, 41417, 64988, 64989, 64990, 65574, 70235, 70234, 70233, 70972, 70974, 31728)) ORDER BY "lego_color"."name" ASC, "lego_element"."element_id" ASC
0.26

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(383)
  prints = sorted(part.get_related_prints_child(), key=lambda x: x.part_num)

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_prints_child(750)
  return self.get_related_children(PartRelationship.REL_TYPE_PRINT, limit=limit)

/home/nathan/rb/site/./lego/models/parts.py in get_related_children(743)
  return [p.part_child for p in parts]

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
"lego_partcolorstats"."part_id" IN (22234, 11323, 57874, 41417, 64988, 64989, 64990, 65574, 70235, 70234, 70233, 70972, 70974, 31728)
SELECT ••• FROM "lego_partcolorstats" WHERE "lego_partcolorstats"."part_id" IN (22234, 11323, 57874, 41417, 64988, 64989, 64990, 65574, 70235, 70234, 70233, 70972, 70974, 31728)
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(383)
  prints = sorted(part.get_related_prints_child(), key=lambda x: x.part_num)

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_prints_child(750)
  return self.get_related_children(PartRelationship.REL_TYPE_PRINT, limit=limit)

/home/nathan/rb/site/./lego/models/parts.py in get_related_children(743)
  return [p.part_child for p in parts]

SELECT "lego_partcost"."id",
       "lego_partcost"."part_id",
       "lego_partcost"."color_id",
       "lego_partcost"."is_used",
       "lego_partcost"."cost_avg",
       "lego_partcost"."cost_min",
       "lego_partcost"."cost_max",
       "lego_partcost"."cost_count"
  FROM
"lego_partcost"
 WHERE
"lego_partcost"."part_id" IN (22234, 11323, 57874, 41417, 64988, 64989, 64990, 65574, 70235, 70234, 70233, 70972, 70974, 31728)
SELECT ••• FROM "lego_partcost" WHERE "lego_partcost"."part_id" IN (22234, 11323, 57874, 41417, 64988, 64989, 64990, 65574, 70235, 70234, 70233, 70972, 70974, 31728)
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(383)
  prints = sorted(part.get_related_prints_child(), key=lambda x: x.part_num)

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_prints_child(750)
  return self.get_related_children(PartRelationship.REL_TYPE_PRINT, limit=limit)

/home/nathan/rb/site/./lego/models/parts.py in get_related_children(743)
  return [p.part_child for p in parts]

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type",
       T3."id",
       T3."part_num",
       T3."name",
       T3."part_cat_id",
       T3."notes",
       T3."is_active",
       T3."search_vector",
       T3."ldraw_part_id",
       T3."bricklink_part_id",
       T3."ignore_color_errors",
       T3."part_material_id",
       T3."is_bricklink_minifig",
       T3."is_bricklink_book",
       T3."is_bricklink_gear",
       T3."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_partrelationship"
 INNER JOIN
"lego_part" T3
    ON
("lego_partrelationship"."part_child_id" = T3."id")
 INNER JOIN
"lego_partcategory"
    ON
(T3."part_cat_id" = "lego_partcategory"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
(T3."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
(T3."id" = "lego_partstats"."part_id")
 WHERE
("lego_partrelationship"."part_parent_id" = 106 AND "lego_partrelationship"."rel_type" = 'T' AND NOT ("lego_partrelationship"."part_child_id" = 106))
 ORDER BY
"lego_partstats"."num_sets" DESC
SELECT ••• FROM "lego_partrelationship" INNER JOIN "lego_part" T3 ON ("lego_partrelationship"."part_child_id" = T3."id") INNER JOIN "lego_partcategory" ON (T3."part_cat_id" = "lego_partcategory"."id") LEFT OUTER JOIN "lego_partoverlay" ON (T3."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON (T3."id" = "lego_partstats"."part_id") WHERE ("lego_partrelationship"."part_parent_id" = 106 AND "lego_partrelationship"."rel_type" = 'T' AND NOT ("lego_partrelationship"."part_child_id" = 106)) ORDER BY "lego_partstats"."num_sets" DESC
4 similar queries.
0.59

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(384)
  patterns = sorted(part.get_related_patterns_child(), key=lambda x: x.part_num)

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_patterns_child(759)
  return self.get_related_children(PartRelationship.REL_TYPE_PATTERN, limit=limit)

/home/nathan/rb/site/./lego/models/parts.py in get_related_children(743)
  return [p.part_child for p in parts]

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type",
       T3."id",
       T3."part_num",
       T3."name",
       T3."part_cat_id",
       T3."notes",
       T3."is_active",
       T3."search_vector",
       T3."ldraw_part_id",
       T3."bricklink_part_id",
       T3."ignore_color_errors",
       T3."part_material_id",
       T3."is_bricklink_minifig",
       T3."is_bricklink_book",
       T3."is_bricklink_gear",
       T3."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_partrelationship"
 INNER JOIN
"lego_part" T3
    ON
("lego_partrelationship"."part_child_id" = T3."id")
 INNER JOIN
"lego_partcategory"
    ON
(T3."part_cat_id" = "lego_partcategory"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
(T3."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
(T3."id" = "lego_partstats"."part_id")
 WHERE
("lego_partrelationship"."part_parent_id" = 106 AND "lego_partrelationship"."rel_type" = 'R' AND NOT ("lego_partrelationship"."part_child_id" = 106))
 ORDER BY
"lego_partstats"."num_sets" DESC
SELECT ••• FROM "lego_partrelationship" INNER JOIN "lego_part" T3 ON ("lego_partrelationship"."part_child_id" = T3."id") INNER JOIN "lego_partcategory" ON (T3."part_cat_id" = "lego_partcategory"."id") LEFT OUTER JOIN "lego_partoverlay" ON (T3."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON (T3."id" = "lego_partstats"."part_id") WHERE ("lego_partrelationship"."part_parent_id" = 106 AND "lego_partrelationship"."rel_type" = 'R' AND NOT ("lego_partrelationship"."part_child_id" = 106)) ORDER BY "lego_partstats"."num_sets" DESC
4 similar queries.
0.40

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(385)
  pairs = part.get_related_pairs()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_pairs(854)
  children = self.get_related_children(PartRelationship.REL_TYPE_PAIR)

/home/nathan/rb/site/./lego/models/parts.py in get_related_children(743)
  return [p.part_child for p in parts]

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type",
       T3."id",
       T3."part_num",
       T3."name",
       T3."part_cat_id",
       T3."notes",
       T3."is_active",
       T3."search_vector",
       T3."ldraw_part_id",
       T3."bricklink_part_id",
       T3."ignore_color_errors",
       T3."part_material_id",
       T3."is_bricklink_minifig",
       T3."is_bricklink_book",
       T3."is_bricklink_gear",
       T3."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_partrelationship"
 INNER JOIN
"lego_part" T3
    ON
("lego_partrelationship"."part_parent_id" = T3."id")
 INNER JOIN
"lego_partcategory"
    ON
(T3."part_cat_id" = "lego_partcategory"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
(T3."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
(T3."id" = "lego_partstats"."part_id")
 WHERE
("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'R' AND NOT ("lego_partrelationship"."part_parent_id" = 106))
 ORDER BY
"lego_partstats"."num_sets" DESC
SELECT ••• FROM "lego_partrelationship" INNER JOIN "lego_part" T3 ON ("lego_partrelationship"."part_parent_id" = T3."id") INNER JOIN "lego_partcategory" ON (T3."part_cat_id" = "lego_partcategory"."id") LEFT OUTER JOIN "lego_partoverlay" ON (T3."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON (T3."id" = "lego_partstats"."part_id") WHERE ("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'R' AND NOT ("lego_partrelationship"."part_parent_id" = 106)) ORDER BY "lego_partstats"."num_sets" DESC
2 similar queries.
0.37

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(385)
  pairs = part.get_related_pairs()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_pairs(855)
  parents = self.get_related_parents(PartRelationship.REL_TYPE_PAIR)

/home/nathan/rb/site/./lego/models/parts.py in get_related_parents(714)
  return [p.part_parent for p in parts]

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type",
       T3."id",
       T3."part_num",
       T3."name",
       T3."part_cat_id",
       T3."notes",
       T3."is_active",
       T3."search_vector",
       T3."ldraw_part_id",
       T3."bricklink_part_id",
       T3."ignore_color_errors",
       T3."part_material_id",
       T3."is_bricklink_minifig",
       T3."is_bricklink_book",
       T3."is_bricklink_gear",
       T3."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_partrelationship"
 INNER JOIN
"lego_part" T3
    ON
("lego_partrelationship"."part_parent_id" = T3."id")
 INNER JOIN
"lego_partcategory"
    ON
(T3."part_cat_id" = "lego_partcategory"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
(T3."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
(T3."id" = "lego_partstats"."part_id")
 WHERE
("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'P')
 LIMIT
1
SELECT ••• FROM "lego_partrelationship" INNER JOIN "lego_part" T3 ON ("lego_partrelationship"."part_parent_id" = T3."id") INNER JOIN "lego_partcategory" ON (T3."part_cat_id" = "lego_partcategory"."id") LEFT OUTER JOIN "lego_partoverlay" ON (T3."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON (T3."id" = "lego_partstats"."part_id") WHERE ("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'P') LIMIT 1
2 similar queries.
0.43

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(386)
  print_of = part.get_related_prints_parent()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_prints_parent(773)
  return self.get_related_parent(PartRelationship.REL_TYPE_PRINT, query_related=query_related)

/home/nathan/rb/site/./lego/models/parts.py in get_related_parent(727)
  return parents[0].part_parent

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type",
       T3."id",
       T3."part_num",
       T3."name",
       T3."part_cat_id",
       T3."notes",
       T3."is_active",
       T3."search_vector",
       T3."ldraw_part_id",
       T3."bricklink_part_id",
       T3."ignore_color_errors",
       T3."part_material_id",
       T3."is_bricklink_minifig",
       T3."is_bricklink_book",
       T3."is_bricklink_gear",
       T3."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_partrelationship"
 INNER JOIN
"lego_part" T3
    ON
("lego_partrelationship"."part_parent_id" = T3."id")
 INNER JOIN
"lego_partcategory"
    ON
(T3."part_cat_id" = "lego_partcategory"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
(T3."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
(T3."id" = "lego_partstats"."part_id")
 WHERE
("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'T')
 LIMIT
1
SELECT ••• FROM "lego_partrelationship" INNER JOIN "lego_part" T3 ON ("lego_partrelationship"."part_parent_id" = T3."id") INNER JOIN "lego_partcategory" ON (T3."part_cat_id" = "lego_partcategory"."id") LEFT OUTER JOIN "lego_partoverlay" ON (T3."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON (T3."id" = "lego_partstats"."part_id") WHERE ("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'T') LIMIT 1
2 similar queries.
0.40

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(387)
  pattern_of = part.get_related_patterns_parent()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_patterns_parent(778)
  return self.get_related_parent(PartRelationship.REL_TYPE_PATTERN)

/home/nathan/rb/site/./lego/models/parts.py in get_related_parent(727)
  return parents[0].part_parent

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type",
       T3."id",
       T3."part_num",
       T3."name",
       T3."part_cat_id",
       T3."notes",
       T3."is_active",
       T3."search_vector",
       T3."ldraw_part_id",
       T3."bricklink_part_id",
       T3."ignore_color_errors",
       T3."part_material_id",
       T3."is_bricklink_minifig",
       T3."is_bricklink_book",
       T3."is_bricklink_gear",
       T3."show_generic_part_msg",
       "lego_partcategory"."id",
       "lego_partcategory"."name",
       "lego_partcategory"."part_count",
       "lego_partcategory"."img",
       "lego_partcategory"."slug",
       "lego_partoverlay"."part_id",
       "lego_partoverlay"."length",
       "lego_partstats"."part_id",
       "lego_partstats"."num_sets",
       "lego_partstats"."num_mocs",
       "lego_partstats"."num_set_parts",
       "lego_partstats"."num_moc_parts",
       "lego_partstats"."y1",
       "lego_partstats"."y2",
       "lego_partstats"."is_dirty"
  FROM
"lego_partrelationship"
 INNER JOIN
"lego_part" T3
    ON
("lego_partrelationship"."part_parent_id" = T3."id")
 INNER JOIN
"lego_partcategory"
    ON
(T3."part_cat_id" = "lego_partcategory"."id")
  LEFT OUTER JOIN
"lego_partoverlay"
    ON
(T3."id" = "lego_partoverlay"."part_id")
  LEFT OUTER JOIN
"lego_partstats"
    ON
(T3."id" = "lego_partstats"."part_id")
 WHERE
("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'B' AND NOT ("lego_partrelationship"."part_parent_id" = 106))
 ORDER BY
"lego_partstats"."num_sets" DESC
SELECT ••• FROM "lego_partrelationship" INNER JOIN "lego_part" T3 ON ("lego_partrelationship"."part_parent_id" = T3."id") INNER JOIN "lego_partcategory" ON (T3."part_cat_id" = "lego_partcategory"."id") LEFT OUTER JOIN "lego_partoverlay" ON (T3."id" = "lego_partoverlay"."part_id") LEFT OUTER JOIN "lego_partstats" ON (T3."id" = "lego_partstats"."part_id") WHERE ("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'B' AND NOT ("lego_partrelationship"."part_parent_id" = 106)) ORDER BY "lego_partstats"."num_sets" DESC
2 similar queries.
0.34

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(388)
  subpart_of = part.get_related_subparts_parents()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_related_subparts_parents(801)
  return self.get_related_parents(PartRelationship.REL_TYPE_SUBPART)

/home/nathan/rb/site/./lego/models/parts.py in get_related_parents(714)
  return [p.part_parent for p in parts]

select lego_color.id,
       lego_color.id as color_id,
       name as color_name,
       rgb,
       sum(num_set_parts) as num_set_parts,
       sum(num_moc_parts) as num_moc_parts,
       sum(num_sets) as num_sets,
       sum(num_mocs) as num_mocs,
       min(y1) as y1,
       max(y2) as y2
  from
lego_color
  left outer join
lego_PartColorStats
    on
lego_PartColorStats.color_id = lego_Color.id
   and
lego_PartColorStats.part_id = 106
 where
lego_color.id not in (-1)
 group by
1,
       2,
       3,
       4
select lego_color.id, lego_color.id as color_id, name as color_name, rgb, sum(num_set_parts) as num_set_parts, sum(num_moc_parts) as num_moc_parts, sum(num_sets) as num_sets, sum(num_mocs) as num_mocs, min(y1) as y1, max(y2) as y2 from lego_color left outer join lego_PartColorStats on lego_PartColorStats.color_id = lego_Color.id and lego_PartColorStats.part_id = 106 where lego_color.id not in (-1) group by 1, 2, 3, 4
0.38

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(418)
  context['part_colors'] = PartColorStats.get_all_color_stats_for_part(part.id)

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_all_color_stats_for_part(1767)
  for stat in stats:

SELECT "lego_element"."id",
       "lego_element"."part_id",
       "lego_element"."color_id",
       "lego_element"."element_id",
       "lego_element"."design_id",
       "lego_element"."descr",
       "lego_element"."color_descr",
       "lego_element"."last_download_attempt",
       "lego_element"."num_download_attempts",
       "lego_element"."is_export_id",
       "lego_element"."is_active"
  FROM
"lego_element"
 INNER JOIN
"lego_color"
    ON
("lego_element"."color_id" = "lego_color"."id")
 WHERE
("lego_element"."is_active" AND "lego_element"."is_export_id" AND "lego_element"."part_id" = 106)
 ORDER BY
"lego_color"."name" ASC, "lego_element"."element_id" ASC
SELECT ••• FROM "lego_element" INNER JOIN "lego_color" ON ("lego_element"."color_id" = "lego_color"."id") WHERE ("lego_element"."is_active" AND "lego_element"."is_export_id" AND "lego_element"."part_id" = 106) ORDER BY "lego_color"."name" ASC, "lego_element"."element_id" ASC
0.46

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(425)
  elements_map = {e.color_id: e for e in elements}

SELECT "lego_changelog"."id",
       "lego_changelog"."timestamp",
       "lego_changelog"."user_id",
       "lego_changelog"."model",
       "lego_changelog"."instance_id",
       "lego_changelog"."set_num",
       "lego_changelog"."part_num",
       "lego_changelog"."old_value",
       "lego_changelog"."new_value"
  FROM
"lego_changelog"
 WHERE
("lego_changelog"."instance_id" = 106 AND "lego_changelog"."model" = 'Part')
 ORDER BY
"lego_changelog"."timestamp" DESC
SELECT ••• FROM "lego_changelog" WHERE ("lego_changelog"."instance_id" = 106 AND "lego_changelog"."model" = 'Part') ORDER BY "lego_changelog"."timestamp" DESC
1.29

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(598)
  changes = part.get_change_summary()

/home/nathan/rb/site/./lego/models/parts.py in get_change_summary(961)
  changes = ChangeLog.get_changes(part_id=self.id)

/home/nathan/rb/site/./lego/models/changes.py in get_changes(276)
  if len(changes) > 0:

SELECT "lego_partmap"."id",
       "lego_partmap"."part_id",
       "lego_partmap"."ext_system",
       "lego_partmap"."ext_id",
       "lego_partmap"."is_export_id",
       "lego_partmap"."is_import_id"
  FROM
"lego_partmap"
 WHERE
"lego_partmap"."part_id" = 106
 ORDER BY
"lego_partmap"."is_export_id" DESC, "lego_partmap"."ext_id" ASC
SELECT ••• FROM "lego_partmap" WHERE "lego_partmap"."part_id" = 106 ORDER BY "lego_partmap"."is_export_id" DESC, "lego_partmap"."ext_id" ASC
0.41

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(600)
  context['mappings'] = part.get_ext_mappings()

/home/nathan/rb/site/./lego/models/parts.py in get_ext_mappings(1165)
  for part_map in self.mappings.order_by('-is_export_id', 'ext_id'):  # export first

SELECT "countries_plus_country"."iso",
       "countries_plus_country"."iso3",
       "countries_plus_country"."iso_numeric",
       "countries_plus_country"."fips",
       "countries_plus_country"."name",
       "countries_plus_country"."capital",
       "countries_plus_country"."area",
       "countries_plus_country"."population",
       "countries_plus_country"."continent",
       "countries_plus_country"."tld",
       "countries_plus_country"."currency_code",
       "countries_plus_country"."currency_symbol",
       "countries_plus_country"."currency_name",
       "countries_plus_country"."phone",
       "countries_plus_country"."postal_code_format",
       "countries_plus_country"."postal_code_regex",
       "countries_plus_country"."languages",
       "countries_plus_country"."geonameid",
       "countries_plus_country"."neighbours",
       "countries_plus_country"."equivalent_fips_code"
  FROM
"countries_plus_country"
 WHERE
"countries_plus_country"."iso" = 'US'
 LIMIT
21
SELECT ••• FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./rb/templatetags/rb_geo.py in geo_currency(20)
  geo_data = user.geo.get_user_currency()

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

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

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

SELECT "lego_color"."id",
       "lego_color"."name",
       "lego_color"."rgb",
       "lego_color"."is_trans",
       "lego_color"."fuzzy_color_id",
       "lego_color"."is_active"
  FROM
"lego_color"
 WHERE
"lego_color"."id" = 15
 LIMIT
21
SELECT ••• FROM "lego_color" WHERE "lego_color"."id" = 15 LIMIT 21
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

25 <div class="col-xs-4">
26 {% if part.img_photo.img_url %}
27 <a class="lightbox" href="/media/{{ part.img_photo.img_url }}" data-plugin-options='{"type":"image"}'
28 title="{{ part.img_photo.photo.color.name }} submitted by {{ part.img_photo.photo.submitted_by.username }} on {{ part.img_photo.photo.timestamp }}">
29 {% thumbs part.img_photo.img_url settings.THUMBS_OPTIONS_PART_LARGE as img %}
30 <img class="img-responsive" data-src="{% cachebuster img.url %}" width="{{ img.width }}" height="{{ img.height }}">
31 </a>
32 {% else %}

/home/nathan/rb/site/lego/templates/parts/includes/render_part_large_images.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"."id" = 227700
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 227700 LIMIT 21
3 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

25 <div class="col-xs-4">
26 {% if part.img_photo.img_url %}
27 <a class="lightbox" href="/media/{{ part.img_photo.img_url }}" data-plugin-options='{"type":"image"}'
28 title="{{ part.img_photo.photo.color.name }} submitted by {{ part.img_photo.photo.submitted_by.username }} on {{ part.img_photo.photo.timestamp }}">
29 {% thumbs part.img_photo.img_url settings.THUMBS_OPTIONS_PART_LARGE as img %}
30 <img class="img-responsive" data-src="{% cachebuster img.url %}" width="{{ img.width }}" height="{{ img.height }}">
31 </a>
32 {% else %}

/home/nathan/rb/site/lego/templates/parts/includes/render_part_large_images.html

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary",
       "lego_color"."id",
       "lego_color"."name",
       "lego_color"."rgb",
       "lego_color"."is_trans",
       "lego_color"."fuzzy_color_id",
       "lego_color"."is_active",
       "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
"lego_partphoto"
 INNER JOIN
"lego_color"
    ON
("lego_partphoto"."color_id" = "lego_color"."id")
 INNER JOIN
"auth_user"
    ON
("lego_partphoto"."submitted_by_id" = "auth_user"."id")
 WHERE
("lego_partphoto"."is_active" AND NOT "lego_partphoto"."is_primary" AND "lego_partphoto"."part_id" = 106)
SELECT ••• FROM "lego_partphoto" INNER JOIN "lego_color" ON ("lego_partphoto"."color_id" = "lego_color"."id") INNER JOIN "auth_user" ON ("lego_partphoto"."submitted_by_id" = "auth_user"."id") WHERE ("lego_partphoto"."is_active" AND NOT "lego_partphoto"."is_primary" AND "lego_partphoto"."part_id" = 106)
0.49

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

55
56 {% include 'parts/includes/render_part_large_images.html' %}
57
58 {% if secondary_photos %}
59 <div class="clearfix">
60 <div class="pull-right">
61 There are <a href="#" class="js-toggle-field" data-field="#secondary_photos">
62 {{ secondary_photos.count }} more photos <i class="fa fa-chevron-down"></i></a> of this Part

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partrelationship"."id",
       "lego_partrelationship"."part_parent_id",
       "lego_partrelationship"."part_child_id",
       "lego_partrelationship"."rel_type"
  FROM
"lego_partrelationship"
 WHERE
("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'S')
SELECT ••• FROM "lego_partrelationship" WHERE ("lego_partrelationship"."part_child_id" = 106 AND "lego_partrelationship"."rel_type" = 'S')
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_img(227)
  part_img = part.get_img_dir(color_id=color_id, force_use_ldraw=force_use_ldraw)

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(607)
  similar_part = self.get_similar_part()

/home/nathan/rb/site/./lego/models/parts.py in get_similar_part(352)
  if parent_rel:

153 <span style="display:none">{{ part_stat.color.hsv_str }}</span>
154 <a href="{{ part_stat.url }}">
155 <div style="max-height:45px; max-width:45px">
156 {% render_part_img part_stat.color_id part=part %}
157 </div>
158 </a>
159 </td>
160 <td><a href="{{ part_stat.url }}">{{ part_stat.color.name }}</a></td>

/home/nathan/rb/site/lego/templates/parts/part_details.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" = 43 AND "django_comments"."object_pk" = '106' 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" = 43 AND "django_comments"."object_pk" = '106' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
2 similar queries. Duplicated 2 times.
0.69

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

198 <section class="padding-xxs">
199
200 <ul class="nav nav-tabs nav-top-border">
201 {% get_comment_count for part as num_comments %}
202 <li><a href="#tab_comments" data-toggle="tab">Comments <span class="badge badge-light">{{ num_comments }}</span></a>
203 </li>
204 <li><a href="#tab_buy_parts" data-toggle="tab">Buy Part <span class="badge badge-light" id="buy_parts_count"></span></a></li>
205 <li class="active"><a href="#tab_rel_parts" data-toggle="tab">Related Parts <span class="badge badge-light" id="rel_parts_count">{{ part.related.total_rels }}</span></a></li>

/home/nathan/rb/site/lego/templates/parts/part_details.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" = 'lego' AND "django_content_type"."model" = 'part')
 LIMIT
21
SELECT ••• FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'part') LIMIT 21
0.13

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

/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" = 43 AND "rb_comments_pagelocked"."object_id" = 106)
 LIMIT
1
SELECT ••• FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 43 AND "rb_comments_pagelocked"."object_id" = 106) LIMIT 1
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

/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" = 43 AND "django_comments"."object_pk" = '106' 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" = 43 AND "django_comments"."object_pk" = '106' 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.75

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

14 {% endcomment %}
15 {% if not comment_list %}
16 {# Get comments for a page #}
17 {% get_rb_comment_list for page as comment_list %}
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 (1328988, 297153, 5434, 9694, 13307)
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 (1328988, 297153, 5434, 9694, 13307)
2 similar queries. Duplicated 2 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

14 {% endcomment %}
15 {% if not comment_list %}
16 {# Get comments for a page #}
17 {% get_rb_comment_list for page as comment_list %}
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" = 43 AND "django_comments"."object_pk" = '106' 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" = 43 AND "django_comments"."object_pk" = '106' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" AND NOT "django_comments"."is_removed")
2 similar queries. Duplicated 2 times.
0.23

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
  context[self.as_varname] = self.get_context_value_from_queryset(context, qs)

/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
  return qs.count()

15 {% if not comment_list %}
16 {# Get comments for a page #}
17 {% get_rb_comment_list for page as comment_list %}
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" = 43 AND "django_comments"."object_pk" = '106' 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" = 43 AND "django_comments"."object_pk" = '106' 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.92

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.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 (1328988, 297153, 5434, 9694, 13307)
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 (1328988, 297153, 5434, 9694, 13307)
2 similar queries. Duplicated 2 times.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.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" = 1328988
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 1328988 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
6 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

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

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" = 1328988
 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" = 1328988 LIMIT 21
5 similar queries.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 297153
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 297153 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
6 similar queries.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

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

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" = 297153
 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" = 297153 LIMIT 21
5 similar queries.
0.14

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 5434
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 5434 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
6 similar queries.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

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

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

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.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" = 7791
 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" = 7791 LIMIT 21
2 similar queries.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.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" = 9694
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 9694 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
6 similar queries. Duplicated 2 times.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

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

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" = 9694
 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" = 9694 LIMIT 21
5 similar queries. Duplicated 2 times.
0.10

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 9694)
 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" = 9694) LIMIT 1
6 similar queries. Duplicated 4 times.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 9694)
 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" = 9694) LIMIT 1
6 similar queries. Duplicated 4 times.
0.14

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 9694)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 9694) LIMIT 21
3 similar queries. Duplicated 2 times.
0.10

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.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" = 13307
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 13307 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
6 similar queries.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

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

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" = 13307
 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" = 13307 LIMIT 21
5 similar queries.
0.10

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 13307)
 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" = 13307) LIMIT 1
6 similar queries. Duplicated 2 times.
0.16

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 13307)
 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" = 13307) LIMIT 1
6 similar queries. Duplicated 2 times.
0.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 205
 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" = 205 LIMIT 21
2 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.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" = 9694
 ORDER BY
"avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC
 LIMIT
1
SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 9694 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1
6 similar queries. Duplicated 2 times.
0.07

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

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

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

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" = 9694
 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" = 9694 LIMIT 21
5 similar queries. Duplicated 2 times.
0.13

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 9694)
 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" = 9694) LIMIT 1
6 similar queries. Duplicated 4 times.
0.13

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 9694)
 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" = 9694) LIMIT 1
6 similar queries. Duplicated 4 times.
0.13

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

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

57 {% elif page.is_moc and page.designer_id == comment.user_id %}
58 <span class="label label-dark-blue" title="This user designed this MOC">Designed this MOC</span>
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" = 9694)
 LIMIT
21
SELECT ••• FROM "accounts_usersetting" WHERE ("accounts_usersetting"."name" = 'privacy' AND "accounts_usersetting"."user_id" = 9694) LIMIT 21
3 similar queries. Duplicated 2 times.
0.08

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.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 "lego_partmap"."id",
       "lego_partmap"."part_id",
       "lego_partmap"."ext_system",
       "lego_partmap"."ext_id",
       "lego_partmap"."is_export_id",
       "lego_partmap"."is_import_id"
  FROM
"lego_partmap"
 WHERE
("lego_partmap"."ext_system" = 'BO' AND "lego_partmap"."is_export_id" AND "lego_partmap"."part_id" = 106)
 LIMIT
21
SELECT ••• FROM "lego_partmap" WHERE ("lego_partmap"."ext_system" = 'BO' AND "lego_partmap"."is_export_id" AND "lego_partmap"."part_id" = 106) LIMIT 21
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/models/parts.py in get_brickowl_num(1025)
  return PartMap.part_to_brickowl_id(self.id)

/home/nathan/rb/site/./lego/models/parts.py in part_to_brickowl_id(2011)
  part_map = PartMap.objects.get(ext_system=rb.constants.systems.EXT_SYSTEM_BRICKOWL, part_id=part_id, is_export_id=True)

221
222 <div class="row mt-10 mb-10">
223 <div class="col-md-6">
224 <a href="https://www.brickowl.com/search/catalog?query={{ part.get_brickowl_num }}&utm_source=rebrickable">
225 <button class="btn btn-default btn-block">
226 <img src="{% static 'img/sites/bo.png' %}" class="store-icon-sm"> Search BrickOwl
227 </button>
228 </a>

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 31728)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 31728) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.13

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 22234)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 22234) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 41417)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 41417) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.11

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 11323)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 11323) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary"
  FROM
"lego_partphoto"
 WHERE
("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" = 11323)
SELECT ••• FROM "lego_partphoto" WHERE ("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" = 11323)
2 similar queries.
0.09

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(602)
  photo_img, res['photo'] = self.get_photo_image(color_id=color_id or most_common_color_id)

/home/nathan/rb/site/./lego/models/parts.py in get_photo_image(473)
  for f in self.photos.all():  # prefetch for better performance

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 64988)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 64988) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 64989)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 64989) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.13

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 64990)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 64990) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.18

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 65574)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 65574) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70233)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70233) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70234)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70234) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70235)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70235) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70972)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70972) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partphoto"."id",
       "lego_partphoto"."part_id",
       "lego_partphoto"."color_id",
       "lego_partphoto"."submitted_by_id",
       "lego_partphoto"."image",
       "lego_partphoto"."timestamp",
       "lego_partphoto"."is_active",
       "lego_partphoto"."is_primary"
  FROM
"lego_partphoto"
 WHERE
("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" = 70972)
SELECT ••• FROM "lego_partphoto" WHERE ("lego_partphoto"."is_active" AND "lego_partphoto"."part_id" = 70972)
2 similar queries.
0.12

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(602)
  photo_img, res['photo'] = self.get_photo_image(color_id=color_id or most_common_color_id)

/home/nathan/rb/site/./lego/models/parts.py in get_photo_image(473)
  for f in self.photos.all():  # prefetch for better performance

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70974)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 70974) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.17

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT "lego_partcolorstats"."id",
       "lego_partcolorstats"."part_id",
       "lego_partcolorstats"."color_id",
       "lego_partcolorstats"."num_sets",
       "lego_partcolorstats"."num_mocs",
       "lego_partcolorstats"."num_set_parts",
       "lego_partcolorstats"."num_moc_parts",
       "lego_partcolorstats"."y1",
       "lego_partcolorstats"."y2",
       "lego_partcolorstats"."is_dirty",
       "lego_partcolorstats"."ignore_color_errors"
  FROM
"lego_partcolorstats"
 WHERE
("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 57874)
 ORDER BY
"lego_partcolorstats"."num_set_parts" DESC
 LIMIT
1
SELECT ••• FROM "lego_partcolorstats" WHERE ("lego_partcolorstats"."num_sets" > 0 AND "lego_partcolorstats"."part_id" = 57874) ORDER BY "lego_partcolorstats"."num_set_parts" DESC LIMIT 1
15 similar queries.
0.19

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part(134)
  return mark_safe(render_part_wrapper(part, sub_text, request=context['request']))

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in render_part_wrapper(133)
  return _render_part_in_color(part, sub_text=sub_text, request=request)

/home/nathan/rb/site/./lego/templatetags/parts/drawing.py in _render_part_in_color(51)
  part_img = part.get_img_dir()

/home/nathan/rb/site/./lego/models/parts.py in get_img_dir(536)
  most_common_color_id = self.get_most_common_color()

/home/nathan/rb/site/./cache/utils.py in cache_wrapper(98)
  result = method(instance, *args, **kwargs)

/home/nathan/rb/site/./lego/models/parts.py in get_most_common_color(323)
  pcs = PartColorStats.objects.filter(part=self, num_sets__gt=0).order_by('-num_set_parts').first()

259 </div>
260 <div class="col-md-10">
261 {% for rel_part in rel_parts.parts %}
262 {% render_part rel_part rel_part.get_part_years_html %}
263 {% endfor %}
264 </div>
265 </div>
266 {% endif %}

/home/nathan/rb/site/lego/templates/parts/part_details.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"."id" = 14956
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 14956 LIMIT 21
3 similar queries.
0.15

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

544 <section class="padding-xxs">
545 <div>
546 <small><i class="fa fa-fw fa-plus" title="Added"></i> {{ changes.added.timestamp }}
547 {% if changes.added.user %}by
548 <a href="{% url 'user_profile' changes.added.user.get_username %}">{{ changes.added.user.get_username }}</a>
549 {% endif %}</small>
550 </div>
551 <div>

/home/nathan/rb/site/lego/templates/parts/part_details.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"."id" = 455348
 LIMIT
21
SELECT ••• FROM "auth_user" WHERE "auth_user"."id" = 455348 LIMIT 21
3 similar queries.
0.13

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

550 </div>
551 <div>
552 <small><i class="fa fa-fw fa-edit" title="Updated"></i> {{ changes.updated.timestamp }}
553 {% if changes.updated.user %}by
554 <a href="{% url 'user_profile' changes.updated.user.get_username %}">{{ changes.updated.user.get_username }}</a>
555 {% endif %}</small>
556 </div>
557 <div class="mb-10">

/home/nathan/rb/site/lego/templates/parts/part_details.html

SELECT DISTINCT "taggit_tag"."id",
       "taggit_tag"."name",
       "taggit_tag"."slug",
       COUNT("lego_part"."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
"lego_part"
    ON
("taggit_taggeditem"."object_id" = "lego_part"."id" AND ("taggit_taggeditem"."content_type_id" IN (43,48)))
 INNER JOIN
"taggit_taggeditem" T5
    ON
("taggit_tag"."id" = T5."tag_id")
 INNER JOIN
"lego_part" T6
    ON
(T5."object_id" = T6."id" AND (T5."content_type_id" IN (43,48)))
 WHERE
("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'part' AND T6."id" = 106)
 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 "lego_part" ON ("taggit_taggeditem"."object_id" = "lego_part"."id" AND ("taggit_taggeditem"."content_type_id" IN (43,48))) INNER JOIN "taggit_taggeditem" T5 ON ("taggit_tag"."id" = T5."tag_id") INNER JOIN "lego_part" T6 ON (T5."object_id" = T6."id" AND (T5."content_type_id" IN (43,48))) WHERE ("django_content_type"."app_label" = 'lego' AND "django_content_type"."model" = 'part' AND T6."id" = 106) GROUP BY "taggit_tag"."id"
12.27

Connection: default

Transaction status: Idle

/home/nathan/rb/site/./lego/views/parts.py in find_parts(124)
  return part_details(request, slug1)

/home/nathan/venv_rb310/lib/python3.10/site-packages/ratelimit/decorators.py in _wrapped(30)
  return fn(*args, **kw)

/home/nathan/rb/site/./lego/views/parts.py in part_details(609)
  return render(request, 'parts/part_details.html', context)

1 {# Simon wanted the id=tags as an anchor for his links #}
2 <div class="clearfix anchor tags_list" id="{{ prefix }}tags">
3 {% for tag in tags %}
4 <a href="{% url 'find_parts' %}?tag={{ tag.id }}&show_unused=on&show_printed=on" class="tag {% if request.user.is_tagger %}deltag{% endif %}">
5 <span class="txt">{{ tag.name }}</span>
6 <span class="num">
7 <span class="relative">

/home/nathan/rb/site/lego/templates/parts/includes/render_tags.html

Log messages

No messages logged.