рдХреНрд▓рд╛рд╕ рдмреЗрд╕реНрдб рд╡реНрдпреВ, рднрд╛рдЧ 2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╡рд░рдг

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


рднрд╛рдЧ 1 , рднрд╛рдЧ 2 , рднрд╛рдЧ 3 , рднрд╛рдЧ 4

рддреНрд╡рд░рд┐рдд рд╡рд┐рдзрд┐ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ

рдкреНрд░реЗрд╖рдг
get_context_data
get_template_names
get_context_object_name
рдкреНрд░рд╛рдкреНрдд
рдкрдж
рд░рдЦрдирд╛
рд╣рдЯрд╛рдирд╛
рд╕рд┐рд░
рд╡рд┐рдХрд▓реНрдк
рдирд┐рд╢рд╛рди
render_to_response
get_queryset

рддреНрд╡рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдЦреЛрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ

рд╡рд╕реНрддреБ
TEMPLATE_NAME
template_name_suffix
context_object_name
http_method_names
рдХреНрд╡реЗрд░реАрд╕рдореВрд╣
рдЖрджрд░реНрд╢

рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА

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

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

from django.contrib.auth.decorators import login_required from django.utils.decorators import method_decorator from django.views.generic import ListView class PostList(ListView): model = Post @method_decorator(login_required()) def dispatch(self, request, *args, **kwargs): return super(PostList, self).dispatch(request, *args, **kwargs) 


рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдкреНрд░реЗрд╖рдг рд╡рд┐рдзрд┐ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреНрд░реЗрд╖рдгрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛, рдирд┐рдпрдВрддреНрд░рдг рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

 from django.views.generic.detail import DetailView from models import Post, Comment class PostDetail(DetailView): model = Post def get_context_data(self, **kwargs): context = super(PostDetail, self).get_context_data(**kwargs) context['comments'] = Comment.objects.filter(post=self.object, is_delete=False).order_by('-created_at') return context 


рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдЯреЗрд▓ рд╡реНрдпреВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рд╡рд░реНрддрдорд╛рди рд╡рд╕реНрддреБ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╕реНрддреБ ред

рдЕрдЧрд░ рд╣рдо рдПрдХ рдРрд╕реЗ рдЦрд╛рдХреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ (рдпрд╛ рд╕реЗрдЯ рдХрд░рдирд╛) рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рддреЛ рд╣рдореЗрдВ рд╡рд┐рдзрд┐ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ get_template_names ред рдпрд╣ рд╡рд┐рдзрд┐ рдЙрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рд▓реМрдЯрд╛рддреА рд╣реИ рдЬреЛ Django рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рдХреНрд░рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдЧреАред рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХрд╛ template_name ред рдпрджрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ Django рдЯреЗрдореНрдкрд▓реЗрдЯ "application_name / object_name_prefix" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдордЧреНрд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдкреЛрд╕реНрдЯ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрде "рд╕рд╛рдордЧреНрд░реА / post_prefix.html" рдЬреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред рдЙрдкрд╕рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП template_name_suffix , рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ListView рдХреЗ рд▓рд┐рдП, рдЙрдкрд╕рд░реНрдЧ рдХреЛ "_list" рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд┐рд╕реНрддрд╛рд░ рджреГрд╢реНрдп "_detail" рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддреЛ рд╣рдореЗрдВ рдмрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ_рдирд╛рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╛рдо рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддреЛ get_template_names рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдЕрдХреНрд╕рд░ рдЪрд░ рдХреЗ рдирд╛рдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ (рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА) рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡рд┐рдзрд┐ рдирд╛рдорд┐рдд рд╣реИ get_context_object_name ред рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ (рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА) рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреА рд╣реИред рдХрд┐рд╕реА рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЪрд░ рдирд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛ред рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкреНрд░рддреНрдпрдп _list рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЛрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдЪрд░ рдирд╛рдо рдХреНрд░рдорд╢рдГ рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ рдФрд░ рдкреЛрд╕реНрдЯ_рд▓рд┐рд╕реНрдЯ рд╣реЛрдВрдЧреЗред рдпрджрд┐ рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЪрд░ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ reference_object_name ред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдо рдПрдХ рдИрдорд╛рдирджрд╛рд░ рдЖрд╡реЗрджрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╕реАрдмреАрд╡реА рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡реЗрджрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдореИрдкрд┐рдВрдЧ рдореЗрдВ рдЙрд╕реА рдирд╛рдо рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрдкрд▓рдмреНрдз рддрд░реАрдХреЛрдВ рдХреА рд╕реВрдЪреА: рдорд┐рд▓рддрд╛ рд╣реИ, рдкреЛрд╕реНрдЯ, рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд░, рд╡рд┐рдХрд▓реНрдк , рдЯреНрд░реЗрд╕ ред рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдлреЙрд░реНрдо рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреЛрд╕реНрдЯ рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ http рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ, рдмрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ http_method_names рдЬрд┐рд╕рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЙрд╕реА рдирд╛рдо рдХреА рдкрджреНрдзрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рд╕рднреА http рддрд░реАрдХреЛрдВ рдХреЛ рдПрдХ HttpResponse рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрдкрд░реЛрдХреНрдд HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ_to_response рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рди рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднреА рд╣реИред

 class PostDetail(DetailView): model = Post def get(self, request, **kwargs): return self.render_to_response(self.get_context_data(), **kwargs) 


рд╡рд┐рдзрд┐ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреА рд╣реИред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рд╣рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред get_queryset рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░реНрдп QuerySet рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЙрдбрд▓ рдХреА рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВ рдореЙрдбрд▓ ред рд╣рдо рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 class PostList(ListView): model = Post def get_queryset(self): qs = Post.objects.filter(is_delete=False).order_by('-created_at') if not self.request.user.is_authenticated(): return qs.exclude(is_private=True) return qs 


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

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


All Articles