рд╡рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдЪрд╛рд░ - рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

Django рд╕рдВрд╕реНрдХрд░рдг 1.3 рдореЗрдВ, рд╡рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреГрд╢реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░рд▓реЗрдЦрди, рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИ, рд╡рд░реНрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ "рд╡рд┐рдЪрд╛рд░" рд▓рд┐рдЦрдиреЗ рдХреА рд╕рд╛рдорд╛рдиреНрдп рддрдХрдиреАрдХ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬреЗрдиреЗрд░рд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛, рдореИрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛, рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдкрд╛рда рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рдмрддрд╛рдирд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕-рдЖрдзрд╛рд░рд┐рдд рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░реЗрд░рдгрд╛


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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рдХрд╛рд╢рдХ рд╡рд░реНрдЧ рд╣реИ, рдФрд░ рд╣рдо рдкреГрд╖реНрда рдкрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреА рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред Django 1.2 рдореЗрдВ рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ :

# urls.py from django.views.generic import list_detail from books.models import Publisher urlpatterns = patterns('', (r'^publishers/$', list_detail.object_list, { "queryset" : Publisher.objects.all(), }) ) 

рд╣рдо рдмрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдмреНрдпрд╛рдЬ рдХреА рдХреНрд╡реЗрд░реА рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реЛ рдЪреБрдХрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди "рджреГрд╢реНрдп" рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреЗрдиреЗрд░рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ), рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ:
  1. рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рдмреНрдпрд╛рдЬ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  2. рдЬреЗрдиреЗрд░рд┐рдХ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП "рд╡реНрдпреВ" рдХреЗ рдХреЛрдб рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдФрд░ URLCONF рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдирд╣реАрдВ рд╣реИред

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

рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░


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

 # views.py from django.views.generic import DetailView from books.models import Publisher class PublisherDetailView(DetailView): model = Publisher 


Urls.py рдореЗрдВ, "рджреГрд╢реНрдп" рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп, рд╡рд░реНрдгрд┐рдд рд╡рд░реНрдЧ рдХрд╛ as_view () рд╡рд┐рдзрд┐ рдЕрдм рдкрд╛рд░рд┐рдд рдХрд░ рджреА рдЧрдИ рд╣реИ:

 urlpatterns = patterns('', (r'^publishers/$', PublisherDetailView.as_view()), ) 

рдкреНрд░рдХрд╛рд░ рдореЙрдбрд▓ рдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ_рдирд╛рдо рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реА рддрд░рд╣ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдм, рдпрджрд┐ рд╣рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рдВрджрд░реНрдн рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди get_context_data () рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрджрд░реНрдн рдХреЗ рдЧрдарди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдФрд░ рдХреЛрдб рд▓рд╛рдЗрд╡ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рджреГрд╢реНрдпреЛрдВ рдореЗрдВред рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рд╣реИрдВ, рдФрд░ рд╡реЗ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред

рджреЛрд╖


рдЖрдк рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдХрд┐ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЖрдк рдХреИрд╕реЗ рдЙрддреНрддрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ, рдпрд╣ рдЕрдХреНрд╕рд░ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА, рдЖрдк рдЬрд╡рд╛рдм рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ HTML рдкреГрд╖реНрда рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА рдПрдХ JSON рдСрдмреНрдЬреЗрдХреНрдЯред рдпрджрд┐ рдЖрдк рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдВрджрд░реНрдн рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ (рдорд┐рд╢реНрд░рдг) рдХреЗ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп:
  1. рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╡реНрдпреВ рд╕реЗ рдирд┐рд╣рд┐рдд;
  2. рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд ред

рдЕрддрдГ, рдЖрдкрдХреЛ рдЬрд┐рд╕ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
  1. рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдЕрд╢реБрджреНрдзрд┐рдпрд╛рдБ рд╣реИрдВ;
  2. рдЗрди рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ рдореЗрдВ рдЦреЛрдЬреЗрдВ рдЬреЛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ;
  3. рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВред

рд╕рднреА "рд╡рд┐рдЪрд╛рд░" рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ


рдХреНрд▓рд╛рд╕-рдЖрдзрд╛рд░рд┐рдд рдЬреЗрдиреЗрд░рд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдкрдХреЛ рд╕рднреА "рд╡рд┐рдЪрд╛рд░реЛрдВ" рдХреЛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рднреА рдореЗрдВ рджреЛрд╣рд░рд╛рд╡ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рд╣реИред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЕрдХреНрд╕рд░ рдЖрдкрдХреЛ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рддреЛ рдХрдХреНрд╖рд╛-рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗред

рд░рд╛рдп

рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рд╡рд░реНрдЧ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░реЗрд╖рдг () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ HttpReponse рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рд╣рдореЗрд╢рд╛ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ as_view () рдлрд╝рдВрдХреНрд╢рди рдмрд╕ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдкреНрд░реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд▓реМрдЯрд╛рддрд╛ рд╣реИ (), рдЬреЛ рдлрд╝рдВрдХреНрд╢рди-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдиреНрдпреВрдирддрд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╡реНрдпреВ рдХреНрд▓рд╛рд╕ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ URLCONF рдХрд╣рддрд╛ рд╣реИред

рд╡реНрдпреВ рдХреНрд▓рд╛рд╕ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреА рд╣реИ (), рдкреЛрд╕реНрдЯ (), рдЖрджрд┐ред рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╡рд╣рд╛рдБ рдЕрдиреБрд░реЛрдз рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ред

рдЙрджрд╛рд╣рд░рдг


рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ "рджреГрд╢реНрдп" рдХреЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдореЗрд░рд╛ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди - рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ "рд╡рд┐рдЪрд╛рд░" рд▓рд┐рдЦрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдХрд╛рд░реНрдп

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзрд┐рдд рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ HTML рдкреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ GST рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рд░реНрдгрдп

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

Django рдореЗрдВ, TemplateResponseMixin рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░реЗрдВрдбрд░_to_response () рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ_name рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдП рдЧрдП рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП, рдЕрдкрдирд╛ рдкреНрд░рд╡реЗрд╢ рдкрддреНрд░ рд▓рд┐рдЦреЗрдВ, рдЬреЛ HTML рдХреЗ рдмрдЬрд╛рдп JSON рд▓реМрдЯрд╛рдПрдЧрд╛:
 class JsonResponseMixin(object): def render_to_reponse(self, context): return http.HttpResponse(self.convert_context_to_json(context), content_type='application/json') def convert_context_to_json(self, context, extract_from_queryset=None): pass 


JSON рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрджрд░реНрдн рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм рд╣рдо рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ HTML рдФрд░ JSON рджреЛрдиреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛:
 class MixedView(View, JsonResponseMixin, TemplateResponseMixin): def get_context(self, request): pass def get(self, request, *args, **kwargs): context = self.get_context(request) if request.GET.get('format', 'html') == 'json' or self.template_name is None: return JsonResponseMixin.render_to_reponse(self, context) else: return TemplateResponseMixin.render_to_response(self, context) 


рдкреНрд░рд╛рдкреНрдд рдлрд╝рдВрдХреНрд╢рди рджреГрд╢реНрдп рдореЗрдВ рдШреЛрд╖рд┐рдд рдПрдХ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред GET рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рдВрджрд░реНрдн рдХреЛ рджреЛ рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ JSON рдпрд╛ HTML рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЗрд╕ рд╕рдВрджрд░реНрдн рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ json рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЙрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕рдВрджрд░реНрдн рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЛрдИ рднреА "рджреГрд╢реНрдп" рдЬреЛ рдЗрд╕ рдХрд╛ рдПрдХ рд╡рдВрд╢рдЬ рд╣реИ рдЙрд╕рдХреЗ рдкрд╛рд╕ рджреЛ рддрд░реАрдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП: get_context (рдЕрдиреБрд░реЛрдз), рдЬреЛ рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ Convert_context_to_json (рд╕рдВрджрд░реНрдн), рдЬреЛ рдЗрд╕реЗ JSON рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ_рдирд╛рдоред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд┐рдо рджреГрд╢реНрдп рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
 class PublisherView(MixedView): def get_context(self, request): context = dict() context['publishers'] = Publisher.objects.all() return context template_name = 'publisher_list.html' def convert_context_to_json(self, context): json_context = dict() json_context['publisher_names'] = [p.name for p in context['publishers']] return json.dumps(json_context, encoding='utf-8', ensure_ascii=False) 


рдирд┐рд╖реНрдХрд░реНрд╖


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

рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдЖрд▓реЛрдЪрдирд╛ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

Source: https://habr.com/ru/post/In136784/


All Articles