Django 1.3 рдХреА рд░рд┐рд▓реАрдЬ рдЬрд▓реНрдж рд╣реА рдЖ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЖрд░рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдКрдВрдЧрд╛ рдЬреЛ рд╣рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рд╕реНрд▓рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
django.contrib.staticfiles
рдЕрдм рдЖрдк рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ (рдЪрд┐рддреНрд░, js, css, рдЗрддреНрдпрд╛рджрд┐) рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд django рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА) рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рджреВрд╕рд░реЛрдВ рдХреЛ рдЕрдЫреВрддрд╛ рдЫреЛрдбрд╝рдХрд░ред , рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдиреНрд╣реЗрдВ рдЬрдЧрд╣ рджреЗрдВрдЧреЗ рдпрд╛ рдЬрд╣рд╛рдВ рд╡реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ (рдЕрд▓рдЧ рд╕рд░реНрд╡рд░? amazon s3?), рдЖрдкрдХреЛ рдЕрдм рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ "рджреЗрдЦрдиреЗ" рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЕрдм рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдбрд░реНрдЯреА рд╣реИрдХреНрд╕ рдХреЛ рднреА рдЕрддреАрдд рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрджрд┐ рдЖрдк рд╕рд┐рд░реНрдл django.contrib.staticfiles рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдкрд░реАрдХреНрд╖рдг
Unittest2 рдЕрдм
рдЬрдВрдЧ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, django.test.TestCase рдХреЛ unittest2.TestCase рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк unittest2 рд╕реЗ рд╕рднреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЬрдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рддрдлрд▓ рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдЙрди рд╢рд░реНрддреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, mysql рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рдФрд░ sqlite рдХреЗ рддрд╣рдд рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдпрд╛ рдирдП рджрд╛рд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдмреЗрд╢рдХ, рдкрд╣рд▓реЗ рдпрд╣ unittest2 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдзрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ рдФрд░ django.test.TestCase рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рд╡рд╣рд╛рдБ рднреА рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдЕрднрд┐рдХрдердиред
ForeignKey
рд╣реБрд░реНрд░реЗ, рдЕрдм рдЬрдм рдЖрдк рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рдиреЗ рдПрдлрдХреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рдВрджрд░реНрднрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╡рд┐рд▓реЛрдкрди рдХреЛ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, NULL рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЦреБрдж рддрдп рдХрд░рдиреЗ рджреЗрдВ)ред
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕
рдЕрдХреНрд╕рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ
{% with foo as bar %} {% include "my_template.inc.html" %} {% endwith %}
рдпрд╛ рдРрд╕реЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛? рдЕрдм рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рдорд╛рд╡реЗрд╢ рдЯреИрдЧ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
{% include "my_template.inc.html" with bar=foo %}
+ рдЖрдк рдЯреИрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯреИрдЧ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдЪрд░ рдХреЛ url рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рдЯреИрдЧ рдХреЗ рд╕рд╛рде рднреА рд╕рд░рд▓ рд╣реИ; simple_tag рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдП рдЧрдП рдЯреИрдЧ рдиреЗ рд╕рдВрджрд░реНрдн рд▓реЗрдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИред
рдХреИрд╢рд┐рдВрдЧ
рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдХреИрд╢ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреБрдЫ рдХреЛ рдПрдХ рдореЗрдореНрдХреЗрдб / рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП "рд╕реНрдорд╛рд░реНрдЯ" рдХреИрд╢рд┐рдВрдЧ рдмреИрдХреЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдорд╛рдиреНрдп рдФрд░ рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд╕рд╛рде рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП - рдирд╣реАрдВ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреИрд╢рд┐рдВрдЧ рдмреИрдХреЗрдВрдб рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХреНрд░реЙрд▓ рдХреА рдЧрдИ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ: рдЕрдм рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИ (рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдпрджрд┐ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдореБрдЦреНрдп рд╕рдВрдШрд░реНрд╖ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП 1 рдореЗрдордХреЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ), рдХреИрд╢ рд╕рдВрд╕реНрдХрд░рдг (рд╕рд╛рдЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдХреИрд╢ рдореЗрдВ рдкреБрд░рд╛рдирд╛ рдбреЗрдЯрд╛) рдЬреЛ рдЕрдм рдЧрд▓рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИрдВ (рдХреИрд╢ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╡реГрджреНрдзрд┐), рдкреНрд░рдореБрдЦ рд░реВрдкрд╛рдВрддрд░рдг (рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдЕрдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ), pylibmc рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╢рд┐рдВрдЧред
journaling
рдкрд╛рдпрдерди рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдЕрдм рд╣реИред Settings.py рдореЗрдВ, рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред 500 рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдИрдореЗрд▓ рднреЗрдЬрдирд╛ рдЖрдЦрд┐рд░рдХрд╛рд░ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
vyuha
рджреГрд╢реНрдп рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред
рдХрдХреНрд╖рд╛ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдЪрд╛рд░ред
рдЕрдм рдЖрдк рджреГрд╢реНрдп рдХрдХреНрд╖рд╛рдПрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЦреБрдж рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрднреА рддрдХ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдпрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдХреНрдпреЛрдВ рд╣реИрдВред рдпрд╣ рд╢рд╛рдпрдж рдХреБрдЫ "рдмрдбрд╝реЗ" рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдпрд╛ рдЬрдм рднреНрд░рдорд┐рдд рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЬрдЯрд┐рд▓ рдмрд╛рдд рд╣реИ рдЬрд┐рд╕реЗ рдХрд╣реАрдВ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдШреЛрд╖рдгрд╛рддреНрдордХ рдПрдкреАрдЖрдИ? рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреА рддрд░рд╣ рдХреБрдЫ?)ред рдорд╛рдирдХ рдЬреЗрдиреЗрд░рд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЕрдм рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛред
TemplateResponse
рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдВрдЧрд▓ рдореЗрдВ рдЕрдм рдЯреЗрдореНрдкреНрд▓реЗрдЯрдкрд░реНрд╕рди рд╣реИред TemplateResponse рдПрдХ рдЖрд▓рд╕реА HttpResponse рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд╕рдордп рдореЗрдВ рдкрд░рд┐рдгрд╛рдо (рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рд╕рдВрджрд░реНрдн) рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд░рд┐рдкреНрд░реЗрд╕реЗрдВрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдлрд┐рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрджрд░реНрдн рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ) рдпрд╛ рдХреБрдЫ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ (рдореВрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рдУрд╡рд░рд╣реЗрдб рдХреЗ рдмрд┐рдирд╛) рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг:
# # from django.template.response import TemplateResponse from parrots.models import Parrot def parrot_list(request): parrots = Parrot.objects.all() # RequestContext. # render_to_template direct_to_template . return TemplateResponse(request, 'parrots.html', {'parrots': parrots})
# . # parrot_list ( , ), # , import parrots.views def parrot_list(request, color) # , response = parrots.views.parrot_list(request) # (TemplateResponse ), # (QuerySet ) # - , , response.template_name = 'my_parrots.html' # original_parrots = response.context_data['parrots'] # , response.context_data['parrots'] = original_parrots.filter(color=color).select_related('owner') # - response.context_data['foo'] = 'bar' # return response
рдЬреЗрдиреЗрд░рд┐рдХ рджреГрд╢реНрдп рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯрдкреНрд░рдХрд╛рд╢ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ,
django.contrib.admin рд╕реЗ рднреА рд╡рд┐рдЪрд╛рд░ред
UPD : рдЗрдЪреНрдЫрд╛рдзрд╛рд░реА рд╕реЛрдЪ, django.contrib.admin рд╕реЗ рд╡рд┐рдЪрд╛рд░ред
рдЯрд┐рдХрдЯ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рдерд╛ред
django.shortcuts.render
# , from django.shortcuts import render def parrot_list(request): parrots = Parrot.objects.all() # render_to_response direct_to_template return render(request, 'parrots.html', {'parrots': parrots})
рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ: рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, i18n рдФрд░ l10n рдХреЗ рд╕рд╛рде рдХрд╛рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреВрд░реА рдЪрдЯрд╛рдИ рдХреЛ рдХреЛрдб рд╕реЗ
рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛
рд╣реИ , рдареАрдХ рд╣реИ, рдХрдИ рдЕрдиреНрдп рдХрдо рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рд╡рд╛рд╕реНрддреБ рд╕реБрдзрд╛рд░ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ
рд░рд┐рд▓реАрдЬ рдиреЛрдЯреЛрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ
рд╣реИрдВ ред