рдЗрд╕рдХреЗ рдмрд╛рдж рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ рд╣рд╛рдИ-рд▓реЛрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ (HL) рдореЗрдВ SQL рдмрдирд╛рдо ORM рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдФрд░ рд╣реЛрд▓реАрд╡рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдиреЛрдЯ рдореЗрдВ рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЬрдЧрд╣реЛрдВ рдкрд░, рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рддреЗрдВред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдзреБрдирд┐рдХ рд▓реЛрдЧ рдЕрдХреНрд╕рд░ рд╕рдм рдХреБрдЫ рд╕рддрд╣реА рд░реВрдк рд╕реЗ рд╣рдбрд╝рдкрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рдВ, рдФрд░ рдмрд╣реБрддреЛрдВ рдХреЛ рдПрдЪрдПрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЦреБрдж рдХреЛ рдкрд░рдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рдпрд╛рдж рд░рдЦреЗрдВ:
- рдУрдЖрд░рдПрдо рдХреЗ рд╕рд┐рд░реНрдл рдПрдХ рд╣реЗрд░рдлреЗрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рдХрднреА рднреА рдПрдЪрдПрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдХрдВрдзреЛрдВ рдкрд░ рдХрднреА рднреА рдЬрдЯрд┐рд▓ рдЪреАрдЬреЗрдВ рди рд░рдЦреЗрдВред рдЖрдкрдХреЛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рддрдереНрдпрд╛рддреНрдордХ рдЧрдгрдирд╛ рдирд╣реАрдВ!
- рдпрджрд┐ рдЖрдк рдЙрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рд╕рд╛рдзрд╛рд░рдг рдУрдЖрд░рдПрдо рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реАрдзреЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдЖрд░рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ рдЪрдврд╝рдирд╛ рдирд╣реАрдВ рд╣реИ, рдмреИрд╕рд╛рдЦреА рдЯреВрдЯ рдЬрд╛рдПрдЧреАред рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреЗрдВред
- рд▓реЗрдЦ рдХреЗ рдордЬрд╝рд╛рдХрд┐рдпрд╛ рд╣рд╛рд╕реНрдп рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдЕрдиреНрдпрдерд╛ рдЙрдмрд╛рдК :)
- рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА Django рд╕рдВрд╕реНрдХрд░рдг 1.3.4 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ
- рдЖрд╕рд╛рди рд╣реЛ!
рдФрд░-рдФрд░-рдФрд░, рд▓реЗрдЦ ORM рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдореБрдЭреЗ Django рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддреАрди рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдУрдЖрд░рдПрдо рдХреЛ рдирд╣реАрдВ рд╕рдордЭрд╛
рдореИрдВ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЧрд▓рддреА рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдХрд╛рдлреА рд╕рдордп рддрдХ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛ред рдЙрд░реБрдЧреНрд╡реЗ рдмрдВрджрд░реЛрдВ рдХреА рдЬрдирдЬрд╛рддрд┐ рдореЗрдВ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ Django ORM рдХреА рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреАрддрд╛ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреН
Klass.objects.all()
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
all_result = Klass.objects.all() result_one = all_result.filter(condition_field=1) result_two = all_result.filter(condition_field=2)
рдореЗрд░реЗ рд╕рдкрдиреЛрдВ рдореЗрдВ, рд╕реЛрдЪ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдереА:
- рдореИрдВрдиреЗ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЪреБрдирд╛ рдЬреЛ рдореБрдЭреЗ рд░реБрдЪрд┐рдХрд░ рд▓рдЧрд╛ред
- рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд▓реА рд╢рд░реНрдд рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред
- рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреНрд╡реЗрд░реА рдирд╣реАрдВ рд╣реЛрдЧреА, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реА рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреВрд╕рд░реА рд╢рд░реНрдд рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧрд╛ред
рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдЬрд╛рджреВ рдмрдВрджрд░ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рдкреНрд░рд╢реНрди рд╣реИрдВред рд▓реЗрдХрд┐рди, рдореИрдВ рдЖрдкрдХреЛ рдирд┐рд░рд╛рд╢ рдХрд░реВрдВрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рджреЛ рдкреНрд░рд╢реНрди рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП - рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рднреА рдХреНрд╡реЗрд░реА рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ)ред рдХреНрдпреЛрдВ, рдЖрдк рдкреВрдЫреЗрдВ?
рдореИрдВ рдЖрджреЗрд╢ рдореЗрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВред рдЖрдЗрдП рд╣рдо рд╕рд╛рдмрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рдХреЛрдб рдореЗрдВ рддреАрди рдкреНрд░рд╢реНрди рд╣реИрдВ:
рд╣реБрд░реНрд░реЗ! рд╣рдордиреЗ рд╕рд╛рдмрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рдЕрдиреБрд░реЛрдз рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рд╡рд╛рдХреНрдпрд╛рдВрд╢ "рдЧрдгрдирд╛ рдореЗрдВ" рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рджреВрд╕рд░реЗ рднрд╛рдЧ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ - рдпрд╣ рдкреНрд░рдорд╛рдг рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рджреЛ рдЕрдиреБрд░реЛрдз рд╣реИрдВред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП, ORM рдХреА рдирд┐рдореНрди рд╕рдордЭ (2 рд╡рд╛рдХреНрдпреЛрдВ рдореЗрдВ) рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧреА:
- рдЕрдм рддрдХ рд╣рдордиреЗ рдХреБрдЫ рднреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рд╣реИ - рд╣рдо рдХреЗрд╡рд▓ рдУрдЖрд░рдПрдо рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдмрдирд╛рддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдЙрддреНрдкрдиреНрди рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдордиреЗ рдЪрд░
all_result рдХреЛ рдЙрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ
рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рд╕рднреА рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рджреВрд╕рд░реА рдФрд░ рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рдЪрдпрди рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЕрдиреБрд░реЛрдз рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдерд┐рддрд┐ред рдЦреИрд░, рдФрд░ рдЗрд╕рд▓рд┐рдП 2 рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдПред рдЬрд┐рд╕реЗ рд╕рд┐рджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЪреМрдХрд╕ рдкрд╛рдардХ (рдЖрдк рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдХреНрдпреЛрдВ рджрд┐рдЦреЗ?) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдордиреЗ рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдФрд░ рджреВрд╕рд░реА рдФрд░ рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рд╣рдордиреЗ рдмрд╕ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЗрд╕рд▓рд┐рдП рд╣рдо рдмрдХрд╡рд╛рд╕ рдХрд░ рд░рд╣реЗ рдереЗред рдФрд░ рдЧрдгрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдХреЛрдб рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕реЗ:
for result in result_one: print result.id
рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рдФрд░ рдЙрдЪрд┐рдд рдЪрдпрди рдирд╣реАрдВ
рдЖрдЗрдП рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдФрд░
__unicode __ () рдлрд╝рдВрдХреНрд╢рди
рдЬреЛ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ
рдкрд╕рдВрдж рд╣реИ ред
рддреБрдореНрд╣реЗрдВ рдкрддрд╛ рд╣реИ - рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛! рдХрд┐рд╕реА рднреА рд╕реНрдерд╛рди рдкрд░, рдХрд┐рд╕реА рднреА рд╕рдордп рдФрд░ рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдЙрд╕ рдирд╛рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рд░реБрдЪрд┐рдХрд░ рдмрдирд╛рддрд╛ рд╣реИред рд╕реБрдкрд░! рдФрд░ рддрдм рддрдХ рд╕реБрдкрд░, рдЬрдм рддрдХ рд╣рдо рдЕрдкрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ
рдлреЙрд░реЗрдирдХреЗ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддреЗред рдЬреИрд╕реЗ рд╣реА рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдорд╛рд░реА рдПрдХ рд▓рд╛рдЗрди рдореЗрдВ рдЦрдмрд░ рд╣реИред рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдпрд╣ рд╕рдорд╛рдЪрд╛рд░ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИ:
class RegionSite(models.Model): name = models.CharField(verbose_name="", max_length=200,) def __unicode__(self): return "%s" % self.name class News(models.Model): region = models.ForeignKey(RegionSite, verbose_name="") date = models.DateField(verbose_name="", blank=True, null=True, ) name = models.CharField(verbose_name="", max_length=255) def __unicode__(self): return "%s (%s)" % (self.name, self.region)
рд╣рдореЗрдВ 10 рдирд╡реАрдирддрдо рд╕рдорд╛рдЪрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐
рд╕рдорд╛рдЪрд╛рд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╛рдо рдХреЗ рд╕рд╛рде рд╣реИред
рдпреВрдирд┐рдХреЛрдб __ ()рдЖрд╕реНрддреАрди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВ, рдФрд░ рд▓рд┐рдЦреЗрдВ:
news = News.objects.all().order_by("-date")[:10]
рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ:
{% for n in news %} {{ n }} {% endfor %}
рдФрд░ рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдЫреЗрдж рдЦреЛрджрд╛ред рдпрджрд┐ рдпрд╣ рд╕рдорд╛рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ 10 рдирд╣реАрдВ рд╣реИрдВ - рд▓реЗрдХрд┐рди 10 рд╣рдЬрд╛рд░ рд╣реИрдВ, рддреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣реЗрдВ рдХрд┐ рдЖрдкрдХреЛ 10,000 рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ + 1. рдФрд░
рд╡рд┐рджреЗрд╢реА рдХреАрдЪрдбрд╝ рдХреЗ рдХрд╛рд░рдг рд╕рднреАред
рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд 10 рд╣рдЬрд╛рд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЫреЛрдЯрд╛ рдореЙрдбрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рд╕рднреА рдлрд╝реАрд▓реНрдб рдФрд░ рдореЙрдбрд▓ рдорд╛рди рдЗрд╕ рддрд░рд╣ рдЪреБрдиреЗ рдЬрд╛рдПрдВрдЧреЗ, рдЪрд╛рд╣реЗ рд╡рд╣ 10 рдпрд╛ 50 рдлрд╝реАрд▓реНрдб рд╣реЛрдВ):
SELECT `seo_regionsite`.`id`, `seo_regionsite`.`name` FROM `seo_regionsite` WHERE `seo_regionsite`.`id` = 1 SELECT `seo_regionsite`.`id`, `seo_regionsite`.`name` FROM `seo_regionsite` WHERE `seo_regionsite`.`id` = 1 SELECT `seo_regionsite`.`id`, `seo_regionsite`.`name` FROM `seo_regionsite` WHERE `seo_regionsite`.`id` = 2 SELECT `seo_regionsite`.`id`, `seo_regionsite`.`name` FROM `seo_regionsite` WHERE `seo_regionsite`.`id` = 1
рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдЬрдирдирд╛рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рд╕рдорд╛рдЪрд╛рд░ рдХрд╛ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ рдирд┐рд╡реЗрджрди рд╣реИ рдХрд┐ рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЙрд╕рдХрд╛ __ рдпреВрдирд┐рдХреЛрдб __ () рдорд╛рди
рд▓реМрдЯрд╛рдПрдВ , рдФрд░ рдХреЛрд╖реНрдардХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░реЗрдВред
рдЗрд╕реА рддрд░рд╣, рдПрдХ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рддрдм рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЬрдм рд╣рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
{{ subgroup.group.megagroup.name }}
рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдХрдард┐рди рдЕрдиреБрд░реЛрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИ :) рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реЗ рджрд░реНрдЬрдиреЛрдВ рдирдореВрдиреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ!
рдЖрдкрдиреЗ рдЕрднреА рд╣рдореЗрдВ рдЗрддрдирд╛ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рд╣реИ - рд╣рдордиреЗ
рд╕реЛрдм рдХрд┐рдпрд╛ рдФрд░ ORM рдХреЗ рдЕрдЧрд▓реЗ рдорд╣рд╛рди рдЕрд╡рд╕рд░ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдпрд╛ -ред
()рдореИрдЬрд┐рдХ-рдХреАрдмреЛрд░реНрдб рддрд░реАрдХреЗ рд╕реЗ рдХреЛрдб рдХреА рд╣рдорд╛рд░реА рд▓рд╛рдЗрди рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ:
news = News.objects.all().values("name", "region__name").order_by("-date")[:10]
рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ:
{% for n in news %} {{ n.name }} ({{ n.region__name }}) {% endfor %}
рдбрдмрд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдиреЛрдЯ рдХрд░реЗрдВред рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред (рдЬреЛ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рдирд╣реАрдВ рд╣реИрдВ - рдбрдмрд▓ рдЕрдВрдбрд░рд▓рд╛рдЗрдирд┐рдВрдЧ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рдореЙрдбрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз, рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП)
рдЗрди рд╕рд░рд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рд╕реЗ рд╣рдореЗрдВ 10 рд╣рдЬрд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рд╛ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдмрдЪрд╛ред рд╡реИрд╕реЗ, рд╣рд╛рдБ, рдпрд╣ рдЬреЙрдЗрди рдХреЗ рд╕рд╛рде рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛!
SELECT `news_news`.`name`, `seo_regionsite`.`name` FROM `news_news` INNER JOIN `seo_regionsite` ON (`news_news`.`region_id` = `seo_regionsite`.`id`) LIMIT 10
рд╣рдо рдкрд╛рдЧрд▓реЛрдВ рдХреА рддрд░рд╣ рдЦреБрд╢ рд╣реИрдВ! рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдо рд╕рд┐рд░реНрдл ORM рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдмрди рдЧрдП рд╣реИрдВ :) рдХреБрдЫ рд╡рд╣рд╛рдБ! рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ :) рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдЕрдиреБрдХреВрд▓рди рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 10 рд╣рдЬрд╛рд░ рд╕рдорд╛рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдФрд░ рднреА рддреЗрдЬреА рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣рдорд╛рд░реЗ рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 2 рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдВ! рдЕрд░реНрдерд╛рддреН, рд╣рдо рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ:
regions = RegionSite.objects.all().values("id", "name") region_info = {} for region in regions: region_info[region["id"]] = region["name"] news = News.objects.all().values("name", "region_id").order_by("-date")[:10] for n in news: n["name"] = "%s (%s)" % (n["name"], region_info[n["region_id"]])
рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░реЗ рддрд╛рдЬрд╝рд╛ рд╕реЗрдЯ рдЪрд░ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ:
{% for n in news %} {{ n.name }} {% endfor %}
рд╣рд╛рдВ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ ... рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдордиреЗ рдПрдорд╡реАрдЯреА рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрди рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдорд╡реАрдЯреА рдорд╛рдирдХреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ?
- рд╣рдордиреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХреА:
SELECT `seo_regionsite`.`id`, `seo_regionsite`.`name` FROM `seo_regionsite`
- рд╕рдорд╛рдЪрд╛рд░ рд╕реЗ рд╡рд╣ рд╕рдм рдХреБрдЫ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд░реБрдЪрд┐рдХрд░ рдХрд░рддрд╛ рд╣реИ + рдПрдХ рд╣реА рд░реЗрдЦрд╛рдВрдХрди рдкрд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реИред
SELECT `news_news`.`name`, `news_news`.`region_id` FROM `news_news` LIMIT 10
рдпрд╣ рдПрдХрд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рдерд╛ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд╛ рд╕реАрдзрд╛ рдЕрд░реНрде рдЪреБрдирд╛ред - рд╣рдордиреЗ рджреЛ рдореЙрдбрд▓реЛрдВ рдХреЛ рдЕрдЬрдЧрд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ред
рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рд╕рд┐рдВрдЧрд▓ рдлреЙрд░реЗрдирдХреЗрдпрд░реНрд╕ рдкрд░ рдЖрдк рд╢рд╛рдпрдж рд╣реА рдЧрддрд┐ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡реГрджреНрдзрд┐ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ (рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдХреБрдЫ рдЪреБрдирд┐рдВрджрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдкрдХрд╛ рдореЙрдбрд▓ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдлреЛрд░реНрдЬрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕ рдирд┐рд░реНрдгрдп рдХрд╛ рдЬрд╢реНрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдЖрдЗрдП рдбрдмрд▓ рдФрд░ рд╕рд┐рдВрдЧрд▓ рдЕрдВрдбрд░рд▓рд╛рдЗрдирд┐рдВрдЧ рд╕реЗ рдкрд░реЗрд╢рд╛рди рд░рд╣реЗрдВред
рднреЛрдЬ рдХреЗ рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
item.group_id vs. item.group.id
рди рдХреЗрд╡рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдмрд▓реНрдХрд┐ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рднрд╛рдЧ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
for n in News.objects.all(): print n.region_id
рд╕рдорд╛рдЪрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рд╣реЛрдЧрд╛ -
рдЙрджрд╛рд╣рд░рдг 2:
for n in News.objects.all(): print n.region.id
10 рд╣рдЬрд╛рд░ рдЕрдиреБрд░реЛрдз + 1 рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рд╣реЛрдЧрд╛ред рдпрд╣ рд╕рдорд╛рди рд╣реЛрдЧрд╛:
SELECT `seo_regionsite`.`id`, `seo_regionsite`.`name` FROM `seo_regionsite` WHERE `seo_regionsite`.`id` = 1
рдпрд╣рд╛рдБ рдПрдХ рд╕рдВрдХреЗрдд рдХреЗ рдХрд╛рд░рдг рдРрд╕рд╛ рдЕрдВрддрд░ рд╣реИред
рдХрдИ рдЙрдиреНрдирдд dzhangovody рдЕрдм рдореЗрд░реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╡реВрдбреВ рдЧреБрдбрд╝рд┐рдпрд╛ рдкрд░ рдПрдХ рдЙрдВрдЧрд▓реА рдкреНрд░рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЙрд╕реА рд╕рдордп рд╡реЗ рдореБрдЭрд╕реЗ рдПрдХ рд╕рд╡рд╛рд▓ рдкреВрдЫрддреЗ рд╣реИрдВ - рдЖрдк рдбреЗрдЯрд╛ рдХреА рддреИрдпрд╛рд░реА рдХреЗ рд╕рд╛рде рдмрд░реНрдлрд╝реАрд▓рд╛ рддреВрдлрд╝рд╛рди рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХрд╣рд╛рдБ рд╣реИрдВ
values_list ("рдЖрдИрдбреА", рдлреНрд▓реИрдЯ = рд╕рдЪ) ?
рдЖрдЗрдП рдПрдХ рдЕрджреНрднреБрдд рдЙрджрд╛рд╣рд░рдг
рджреЗрдЦреЗрдВ , рдЬреЛ
value_list рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдЯреАрдХрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ
рджрд░реНрд╢рд╛рддрд╛ рд╣реИ :
regions_id = RegionSite.objects.filter(id__lte=10).values_list("id", flat=True) for n in News.objects.filter(region__id__in=regions_id): print n.region_id
рдХреЛрдб рдХреА рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо:
- рд╣рдо рдХреБрдЫ рдЕрдореВрд░реНрдд рд╕реНрдерд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЖрдИрдбреА-рд╢рд┐рдХреЛрдиреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
- рдкрд░рд┐рдгрд╛рдореА рдкрд░рд┐рдгрд╛рдо рд╣рдорд╛рд░реА рд╕рдорд╛рдЪрд╛рд░ рдХреНрд╡реЗрд░реА рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:
SELECT `news_news`.`id`, `news_news`.`region_id`, `news_news`.`date`, `news_news`.`name` FROM `news_news` WHERE `news_news`.`region_id` IN (SELECT U0.`id` FROM `seo_regionsite` U0 WHERE U0.`id` <= 10 )
рдирд┐рд╡реЗрджрди рдореЗрдВ рдирд┐рд╡реЗрджрди! Uuuuh, рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ :) рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ IN (10 рд╣рдЬрд╛рд░ ID) рдХреЗ рд╕рд╛рде рдПрдореНрдмреЗрдбреЗрдб рдЪрдпрди рдХреЗ рд╕рд╛рде 10 рд╣рдЬрд╛рд░ рд╕рдорд╛рдЪрд╛рд░ рдЪреБрдиреЗрдВ
рдХреНрдпрд╛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдЦрддрд░рд╛ рд╣реИ? :) рдЕрдЧрд░ рдирд╣реАрдВ - рддреЛ рд╕рдордЭ рд▓реЛ - рдХреБрдЫ рдирд╣реАрдВ, рдмрд┐рд▓реНрдХреБрд▓ рдХреБрдЫ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ!
рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╣рд▓ рднреА рд╕рд░рд▓ рд╣реИред рд╣рдорд╛рд░реЗ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдпрд╛рдж рдХрд░реЗрдВ - рдЪрд░ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдИ рднреА рдХреНрд╡реЗрд░реА рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдФрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдХреА рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдкрд░:
for n in News.objects.filter(region__id__in=list(regions_id)):
рдФрд░ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ 2 рд╕рд░рд▓ рдкреНрд░рд╢реНрди рдорд┐рд▓рддреЗ рд╣реИрдВред рдХреЛрдИ рдЕрдЯреИрдЪрдореЗрдВрдЯ рдирд╣реАрдВред
рдЖрдкрдиреЗ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░ рдореЗрдВ рдХрдореАрдиреЗ ORM рд╕реЗ рдЕрдкрдиреА рд╕рд╛рдВрд╕ рдирд╣реАрдВ рд▓реА рд╣реИ? рдлрд┐рд░ рд╣рдо рдФрд░ рднреА рдЧрд╣рд░реЗ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
regions_id = list(News.objects.all().values_list("region_id", flat=True)) print RegionSite.objects.filter(id__in=regions_id)
рдЗрди рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдорд╛рдЪрд╛рд░ рд╣реИрдВред рдЗрд╕ рдХреЛрдб рдореЗрдВ рд╕рдм рдХреБрдЫ рдорд╣рд╛рди рд╣реИ, рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЕрд░реНрдерд╛рддреН рдкрд░рд┐рдгрд╛рдореА рдЕрдиреБрд░реЛрдз:
SELECT `seo_regionsite`.`id`, `seo_regionsite`.`name` FROM `seo_regionsite` WHERE `seo_regionsite`.`id` IN (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9) LIMIT 21
рдЕрд╣рд╛, ORM, рдЗрд╕реЗ рд░реЛрдХреЛ! рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реЛ!
рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ, рд╕рднреА рд╕рдорд╛рдЪрд╛рд░реЛрдВ рд╕реЗ (рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ 256 рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ), рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЖрдИрдбреА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдФрд░ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣реАрдВ рд╕реЗ 21 рдХреА рд╕реАрдорд╛ рд▓реЗ рд▓реАред рд╕рдм рдХреБрдЫ рд╕реАрдорд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд░рд▓ рд╣реИ - рдпрд╣ рд╣реИ рдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд░рдгреА рдорд╛рдиреЛрдВ рдХрд╛ рдкреНрд░рд┐рдВрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (I рдореБрдЭреЗ рдПрдХ рдФрд░ рдмрд╣рд╛рдирд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛), рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдЙрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдШрд╛рдд рд╣реИред
рд╕рдорд╛рдзрд╛рди, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд░рд▓ рд╣реИ:
print RegionSite.objects.filter(id__in=set(regions_id)).values("id", "name")
рд╕реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж
, рд╣рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ:
SELECT `seo_regionsite`.`id`, `seo_regionsite`.`name` FROM `seo_regionsite` WHERE `seo_regionsite`.`id` IN (1, 2, 3, 4, 9) LIMIT 21
рд╣рд░ рдХреЛрдИ рдЦреБрд╢ рд╣реИ, рд╣рд░ рдХреЛрдИ рдЦреБрд╢ рд╣реИред
рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдкрд░ рдереЛрдбрд╝реА рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд╕рд╛рде, рдореИрдВ рдПрдХ рдФрд░ рдкреИрдЯрд░реНрди рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓реВрдБрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдлрд┐рд░, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб:
region = RegionSite.objects.get(id=1) t = datetime.datetime.now() for i in range(1000): list(News.objects.filter(region__in=[region]).values("id")[:10]) # list(News.objects.filter(region__id__in=[region.id]).values("id")[:10]) # list(News.objects.filter(region__in=[1]).values("id")[:10]) # list(News.objects.filter(region__id__in=[1]).values("id")[:10]) print datetime.datetime.now() - t
рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддрд┐ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП)ред рдХреБрд▓ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- 1 рдкрдВрдХреНрддрд┐ - 6.362800 рд╕реЗрдХрдВрдб
- рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ - 6.073090 рд╕реЗрдХрдВрдб
- рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ - 6.431563 рд╕реЗрдХрдВрдб
- 4 рд╡реАрдВ рдкрдВрдХреНрддрд┐ - 6.126252 рд╕реЗрдХрдВрдб
рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ рдиреНрдпреВрдирддрдо рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреГрд╢реНрдпрдорд╛рди рд╣реИрдВред рдкрд╕рдВрджреАрджрд╛ 2 рдФрд░ 4 рд╡рд┐рдХрд▓реНрдк (рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ 4 рдореА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)ред рд╕рдордп рдХреА рдореБрдЦреНрдп рдмрд░реНрдмрд╛рджреА рдХрд┐рддрдиреА рдЬрд▓реНрджреА рд╣рдо рдПрдХ рдЕрдиреБрд░реЛрдз рдмрдирд╛рддреЗ рд╣реИрдВред рддреБрдЪреНрдЫ, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рдардХ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗрдЧрд╛ред
рдФрд░ рд╣рдо рд▓реЗрдЦ рдХреЛ рдПрдХ рдбрд░рд╛рд╡рдиреЗ рд╢рдмреНрдж -
рд▓реЗрдирджреЗрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛:
- рдЖрдкрдХреЗ рдкрд╛рд╕ InnoDB рд╣реИ
- рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рд▓рд┐рдЦрддреЗ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкрдврд╝рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА)
рдПрдХ-рджреЛ рдЕрджреНрдпрддрди / рд╕рдореНрдорд┐рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рд╣рдо рдбреЗрдЯрд╛ рдбрд╛рд▓рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2 рдбрд┐рдХреНрд╢рдирд░реА рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
- рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣рдо рдЙрд╕рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ
- рд▓рд╛рдн!
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдкрдбреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
@transaction.commit_manually def update_region_price(item_prices): """ """ from idea.catalog.models import CatalogItemInfo try: for ip in item_prices: CatalogItemInfo.objects.filter( item__id=ip["item_id"], region__id=ip["region_id"] ).update( kost=ip["kost"], price=ip["price"], excharge=ip["excharge"], zakup_price=ip["zakup_price"], real_zakup_price=ip["real_zakup_price"], vendor=ip["vendor"], srok=ip["srok"], bonus=ip["bonus"], rate=ip["rate"], liquidity_factor=ip["liquidity_factor"], fixed=ip["fixed"], ) except Exception, e: print e transaction.rollback() return False else: transaction.commit() return True
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдРрдб рдлрдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
@transaction.commit_manually def insert_region_price(item_prices): """ """ from idea.catalog.models import CatalogItemInfo try: for ip in item_prices: CatalogItemInfo.objects.create(**ip) except Exception, e: print e transaction.rollback() return False else: transaction.commit() return True
рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реБрдП, рдЖрдк Django ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рднрд╛рд╡реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ SQL рдХреЛрдб рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред
рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм:
рдЪреВрдВрдХрд┐ рдРрд╕рд╛ рдиреГрддреНрдп рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рддрдм рд▓рд┐рдЦреЗрдВ рдЬрдм рдпрд╣ рдУрдЖрд░рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реЛ, рдФрд░ рдЬрдм рдирд╣реАрдВред (c)
рд▓рд╡реЛрдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдУрдЖрд░рдПрдо рдХреЛ рд╣рдореЗрд╢рд╛ рд╕рд░рд▓ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред ORM рдХреЛ рдЕрдкрдиреЗ рдХрдВрдзреЛрдВ рдкрд░ рди рд░рдЦреЗрдВ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдЖрдзрд╛рд░ рдкреНрд░рд╢реНрди рдЬреИрд╕реЗ:
User.objects.values('username', 'email').annotate(cnt=Count('id')).filter(cnt__gt=1).order_by('-cnt')
рдЦрд╛рд╕рдХрд░ рдПрдЪрдПрд▓-рдкреНрд░реЛрдбрдХреНрд╢рди рдкрд░ред рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕рд┐рд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдмрд╣реБрдд рднреВрдЦреЗ рд╣реЛрдВред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд░рд▓ "рдУрдЖрд░рдПрдо рдкреНрд░рд╢реНрдиреЛрдВ" рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдмрджрд▓ рджреЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, IM рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдВрдд рд▓рдЪреАрд▓реА рдЪреАрдЬ, рдЬрдм рддрдХ рдХрд┐ рд╕рд╛рдЗрдЯ рдЖрдЧрдВрддреБрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рди рд╣реЛрдВред рдорд╛рдирдХ рдХреНрд▓рд╛рдЗрдВрдЯ-рдУрдЖрд░рдПрдо-рдмреЗрд╕-рдУрдЖрд░рдПрдо-рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмрдЬрд╛рдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛, рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рдореЛрдВрдЧреЛрдбреАрдмреА-рдкрд╛рдпрдерди-рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ред рд╕рд┐рд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдкрд░ ORM рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ MongoDB рдореЗрдВ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ - рдПрдЪрдПрд▓ рдЕрдХреЗрд▓реЗ рдУрдЖрд░рдПрдо рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдХреЗ рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ Django рдХреНрдпреЛрдВред рдЕрдиреНрдп рдврд╛рдВрдЪреЗ / рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕ рдврд╛рдВрдЪреЗ (рдФрд░ рдЗрд╕рдХреЗ рдУрдЖрд░рдПрдо) рдХреЗ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИрдВред (c)
рдЕрдВрдЬреЗрдВрд╕рдирдРрддрд┐рд╣рд╛рд╕рд┐рдХ рджреГрд╖реНрдЯрд┐ рд╕реЗред рдЕрдЬрдЧрд░ рдиреЗ Django рдХреЗ рд╕рд╛рде рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рддрдХрдиреАрдХ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рддрдХ рдЬреНрдЮрд╛рди рд▓рд╛рддрд╛ рд╣реВрдВред рдЕрдм рдкрд┐рд░рд╛рдорд┐рдб рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдзреНрдпрдпрди рдореЗрдВред рдореИрдВ рдЕрдм рддрдХ рдХреЗрд╡рд▓ PHP рдФрд░ рдЙрдирдХреЗ рдлреНрд░реЗрдорд╡рд░реНрдХ, рд╕реЗрдореА рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рд╢рд╛рдпрдж рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХрд╣реВрдВрдЧрд╛ -
рдЬрдм рдореИрдВрдиреЗ PHP рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ рддреЛ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕рдордп рдЕрдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдпрд╛ рдерд╛ ред
рдЕрдм рдореИрдВ Django 1.3.4 рдореЗрдВ рдХреБрдЫ рдЧрдВрднреАрд░ рдЦрд╛рдорд┐рдпреЛрдВ рдХрд╛ рдирд╛рдо рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ:
- рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдпреА рд╕рдВрдмрдВрдз / рд╡рд┐рдпреЛрдЧ (рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рд╣реА)
- рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдЧрддрд┐ред рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╛рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдХрд╛рдлреА рдЫреЛрдЯрд╛ рд╣реИред рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ :)
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреАрдврд╝реА рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЪрд╛рд▓ рд╣реИред
рд╕реНрдерд╛рдиреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдХрднреА рднреА рдЪрд░ рди рджреЗрдВ
() - рдмрд▓реНрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдЪрд░ рдХреЗ рд╕рд╛рде - рдЖрдкрдХреЛ рдПрдХ рдореВрдХ, рдзреАрд░реЗ-рдзреАрд░реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд░рд╛рдХреНрд╖рд╕ рдорд┐рд▓реЗрдЧрд╛ :)
рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИ рдЬреЛ SQL рдХреНрд╡реЗрд░реА рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ? (c)
andreynikishaevрдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдкрд░ рдЕрдкрдиреЗ рд╕рдордп рдХреЛ рдорд╣рддреНрд╡ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдмреЗрд╕-рдХреЛрдб рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЗ рд╕рд╛рдзрди рдкрд░ рдирд╣реАрдВред рдЖрдкрдХреЛ SQL рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ - рдмрд╣реБрдд рдмрд╛рд░ рдореИрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдХреЛрдб рдореЗрдВ - ORMред рдУрдЖрд░рдПрдо рдмрджрд▓рдиреЗ рдпрд╛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдФрд░ рддреЗрдЬрд╝ рд╣реИред рдФрд░ рднреА, рдпрджрд┐ рдЖрдк рдпрдереЛрдЪрд┐рдд рдЖрд╕рд╛рди рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдкрдврд╝рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕рдм рд▓реЛрдЧ! (рдмреНрд▓рд╛ рдмреНрд▓рд╛ ... рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рд╕реБрдЭрд╛рд╡реЛрдВ, рдкреНрд░рд╢реНрдиреЛрдВ, рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛)