Exemplo n.º 1
0
 def get_context_data(self, **kwargs):
     context = super(AlbumPhotoUV, self).get_context_data(**kwargs)
     if self.request.POST:
         context['formset'] = PhotoInlineFormSet(self.request.POST, self.request.FILES, instance=self.object)
     else:
         context['formset'] = PhotoInlineFormSet(instance=self.object)
     return context
Exemplo n.º 2
0
 def get_context_data(self, **kwargs):
     context = super(AlbumPhotoCreateView, self).get_context_data(**kwargs)
     if self.request.POST:
         context['formset'] = PhotoInlineFormSet(self.request.POST, self.request.FILES)
     else:
         context['formset'] = PhotoInlineFormSet()
     return context
Exemplo n.º 3
0
 def get_context_data(self, **kwargs):  # 추가적인 변수 지정을 위해 오버라이딩.
     context = super(AlbumPhotoCV, self).get_context_data(**kwargs)
     if self.request.POST:  # Post 요청일경우
         context['formset'] = PhotoInlineFormSet(self.request.POST,
                                                 self.request.FILES)
     else:  # Get 요청일경우 formset 파라미터 지정
         context['formset'] = PhotoInlineFormSet()
     return context  # context 변수 사전 반환
Exemplo n.º 4
0
 def get_context_data(self, **kwargs):
     context = super(AlbumPhotoCV, self).get_context_data(**kwargs)
     if self.request.POST:
         context['formset'] = PhotoInlineFormSet(
             self.request.POST,
             self.request.FILES)  #request.FILES for file uploading
     else:
         context['formset'] = PhotoInlineFormSet()  #Get request
     return context
Exemplo n.º 5
0
Arquivo: views.py Projeto: gunget/ch2
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     if self.request.POST:
         context['formset'] = PhotoInlineFormSet(self.request.POST,
                                                 self.request.FILES,
                                                 instance=self.object)
         #create때와 차이라면 특정 앨범을 지정한 뒤 수정하는 것이므로, 현재 앨범 객체를 instance로 지정해
         #줘야 하는 듯.
     else:
         context['formset'] = PhotoInlineFormSet(instance=self.object)
         #get요청시 현재 앨범객체와 연결된 폼셋을 컨텍스트 변수로 추가
     return context
Exemplo n.º 6
0
Arquivo: views.py Projeto: gunget/ch2
    def get_context_data(self, **kwargs):  #context변수의 속성을 추가하기 위해 오버라이딩
        context = super().get_context_data(**kwargs)  #부모것을 먼저 부른 뒤
        if self.request.POST:
            context['formset'] = PhotoInlineFormSet(self.request.POST,
                                                    self.request.FILES)
            #formset이란 keyword에 request의 Post, FILE파라미터를 인라인 폼셋형태로 추가, context확장.
            #두 속성을 포함하여, 사진 폼셋을 앨범 context변수의 formset이란 속성에 인라인 폼셋형태로 지정한다.
            #하나의 앨범폼에 사진폼셋이 주르륵 붙어서 나타나도록 설정하기 위함인 듯
            '''
             템플릿에 넘겨줄 context(변수)에 추가적인 데이터를 넣고 싶을 경우, 이를 재지정 하면 된다.
             context는 기본적으로 딕셔너리이므로 딕셔너리 문법을 활용한다.
                def get_context_data(self, **kwargs):
                    # 기본 구현을 호출해 context를 가져온다.
                    context = super(PublisherDetail, self).get_context_data(**kwargs)
                    # 모든 책을 쿼리한 집합을 context 객체에 추가한다.
                    context['book_list'] = Book.objects.all()
                    return context
                처럼해서 추가적인 데이터를 넣을 수 있다(book_list항목을 넣어준 것) 
            '''
            ''' super().get_context_data(**kwargs)하면 호출되는 변수 값들. ListView를 상속받은 상태에서 불러온 예.
            {'paginator': None, 'page_obj': None, 'is_paginated': False, 'object_list': <QuerySet 
            [<Video: django 2.2>, <Video: django 1.11>]>, 'video_list': <QuerySet [<Video: django 2.2>, <Video: django 1.11>]>, 
            'view': <videos.views.VideoListView object at 0x106292cc0>}
            '''
            '''
            Django uses request and response objects to pass state through the system.
            When a page is requested, Django creates an [HttpRequest object] that contains
            metadata about the request. Then Django loads the appropriate view, passing
            the HttpRequest as the first argument to the view function. Each view is
            responsible for returning an [HttpResponse object].
             django.http모듈에 HttpRequest와 HttpResponse가 가지는 수십개의 API가 정의되어 있다.
            HttpRequest.FILE도 file업로드 정보를 딕셔너리 형태로 담은 HttpRequest객체의 속성이다.
             어떤 request용 api는 장고의 미들웨어가 추가하기도 하는데, 대보적인게 Request.user라는 api.
            이는 장고의 AuthentificationMiddleware가 추가한다.
            '''

            #보통 뷰는 return render(response, '.html', context)를 반환하는데, 이때 폼 뷰(edit view)의 경우
            #context = {'form':form}으로 보내진다. 여기서 form은 form객체. 헌데 여기선 인라인폼셋을 사용,
            #context ={'form':form, 'formset':PhotoIn~~}을 콘텍스트 변수로 템플릿에 반환하는 것으로 보인
            #다. 따라서 템플릿에선 form과 formset을 변수명으로 다 사용할 수 있다.
        else:  #request가 post가 아니면 인라인 폼셋에 데이터가 들어가있지 않은 형태로 context 확장
            context['formset'] = PhotoInlineFormSet()
        return context
Exemplo n.º 7
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        if self.request.POST:
            context["formset"] = PhotoInlineFormSet(self.request.POST,
                                                    self.request.FILES,
                                                    instance=self.object)
        else:
            context['formset'] = PhotoInlineFormSet(instance=self.object)
        return context

        def form_valid(self, form):
            context = self.get_context_date()
            formset = context['formset']
            if formset.is_valid():
                self.object = form.save()
                formset.instance = self.object
                formset.save()
                return redirect(self.get_success_url())
            else:
                return self.render_to_response(
                    self.get_context_date(form=form))
Exemplo n.º 8
0
 def get_context_data(self, **kwargs):
     context = super(AlbumPhotoCV, self).get_context_data(**kwargs)
     if self.request.POST:
         context['formset'] = PhotoInlineFormSet()
     return context