Django-tables2: рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдХреЗ рдХреЙрд▓рдо рдХреЛ рдХреЙрд▓рдо рдХреЗ рдиреАрдЪреЗ рдЦрд╛рд▓реА рдорд╛рди рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдЕрдЧре░ 2018  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jieter/django-tables2

#595 рдФрд░ #597 рдореЗрдВ рдЕрд╡рд░реЛрд╣реА рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рдХреБрдЫ рдЕрд╡рд░реЛрд╣реА-рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓рд╛ рдЬреЛ рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд▓рдЧрддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рд╕реЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

| рд░рд┐рдХреЙрд░реНрдб | рдореВрд▓реНрдп |
| --- | --- |
| рдП | 3 |
| рдмреА | 1 |
| рд╕реА | - |
| рдбреА | - |

рд╡реИрд▓реНрдпреВ рдХреЙрд▓рдо рдХреЛ рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд░рддреЗ рд╕рдордп, рдЦрд╛рд▓реА рдорд╛рдиреЛрдВ рдХреЛ рд╕реВрдЪреА рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

| рд░рд┐рдХреЙрд░реНрдб | рдореВрд▓реНрдп |
| --- | --- |
| рдмреА | 1 |
| рдП | 3 |
| рд╕реА | - |
| рдбреА | - |

рд▓реЗрдХрд┐рди рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдЫрдБрдЯрд╛рдИ рдХрд░рддреЗ рд╕рдордп, рдЦрд╛рд▓реА рдорд╛рди рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ:

| рд░рд┐рдХреЙрд░реНрдб | рдореВрд▓реНрдп |
| --- | --- |
| рд╕реА | - |
| рдбреА | - |
| рдП | 3 |
| рдмреА | 1 |

рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╕рдордп рдЦрд╛рд▓реА рдореВрд▓реНрдпреЛрдВ рдХреЛ "рдЕрдирджреЗрдЦрд╛" рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪреА рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдзрдХреЗрд▓рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдЖрд░реЛрд╣реА рдХреЗ рд╕рд╛рдеред рдХреНрдпрд╛ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛, рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдкреАрдЖрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреБрдж рд╕реЗ рдмрд╛рдд рдХреА рд╣реЛрдЧреАред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ order_FOO() рд╡рд┐рдзрд┐, рдФрд░ Django рдХреЗ nulls_last рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣:

def order_value(self, QuerySet, is_descending): if is_descending: QuerySet = QuerySet.order_by(F('value').desc(nulls_last = True)) else: QuerySet = QuerySet.order_by(F('value').asc(nulls_last = True)) return (QuerySet,True)

рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреЙрд▓рдо рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рдорд╛рдиреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣рдореЗрд╢рд╛ рдЦрд╛рд▓реА рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рд╣реИ рдЬрдм рдорд╛рди рдмрд╕ рдЦрд╛рд▓реА рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ django-tables2 order_by рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рднреАрддрд░ рдХреБрдЫ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдХрд┐рд╕реА рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рд╕реЙрд░реНрдЯ-рд╡рд┐рдж-рдирд▓-рдЕрдВрддрд┐рдо order_FOO() рд╕рдорд╛рдзрд╛рди рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдмрдВрдж рдорд╛рди рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдЧрд░ рдХреЛрдИ рдФрд░ рд╕рдЦреНрддреА рд╕реЗ рдЦрд╛рд▓реА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрд╕реА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рд▓реНрд▓рд╛рддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдПрдХ рдкреАрдЖрд░ рдкрд░ рджреЛрдмрд╛рд░рд╛ рдЧреМрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдкрдиреЗ #529 рджреЗрдЦрд╛?

рдУрд╣, рдореИрдВ рдЗрд╕реЗ рдЕрдм рджреЗрдЦрддрд╛ рд╣реВрдВред рд╣рдореНрдо, рд╢рд╛рдпрдж рдореИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реЛрдЧрд╛!

рд╣рд╛, рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдкреАрдЖрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреБрдж рд╕реЗ рдмрд╛рдд рдХреА рд╣реЛрдЧреАред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ order_FOO() рд╡рд┐рдзрд┐, рдФрд░ Django рдХреЗ nulls_last рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣:

def order_value(self, QuerySet, is_descending): if is_descending: QuerySet = QuerySet.order_by(F('value').desc(nulls_last = True)) else: QuerySet = QuerySet.order_by(F('value').asc(nulls_last = True)) return (QuerySet,True)

рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреЙрд▓рдо рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рдорд╛рдиреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣рдореЗрд╢рд╛ рдЦрд╛рд▓реА рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рд╣реИ рдЬрдм рдорд╛рди рдмрд╕ рдЦрд╛рд▓реА рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ django-tables2 order_by рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рднреАрддрд░ рдХреБрдЫ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдХрд┐рд╕реА рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рд╕реЙрд░реНрдЯ-рд╡рд┐рдж-рдирд▓-рдЕрдВрддрд┐рдо order_FOO() рд╕рдорд╛рдзрд╛рди рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдмрдВрдж рдорд╛рди рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдЧрд░ рдХреЛрдИ рдФрд░ рд╕рдЦреНрддреА рд╕реЗ рдЦрд╛рд▓реА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрд╕реА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рд▓реНрд▓рд╛рддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдПрдХ рдкреАрдЖрд░ рдкрд░ рджреЛрдмрд╛рд░рд╛ рдЧреМрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕ рдЕрдЪреНрдЫреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб @foldedpaper рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mpasternak picture mpasternak  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

blite picture blite  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brianmay picture brianmay  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wtfrank picture wtfrank  ┬╖  32рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

applegrew picture applegrew  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ