2

날짜 기반 개체와 양식을 모두 보여주는 클래스 기반보기를 작성하는 가장 좋은 방법은 무엇입니까? 유스 케이스는 현재 개체를 표시하고 연락처 양식을 갖는 사이트 색인 페이지보기입니다. 날짜 기반 개체와 폼을 모두 보여주는 장고 클래스 기반 뷰를 작성하는 좋은 방법은 무엇입니까?

는 처음에 나는 내 사이트의 인덱스 페이지 뷰에 대한 유지 mixin로 TodayArchiveView 및 ContactFormView를 사용하여 생각했다. 그러나 TodayArchiveView는 BaseDateListView에서 상속 받고 ContactFormView는 ProcessFormView에서 상속받습니다. ProcessFormView 및 BaseDateListView 모두의 get()를 구현하고 궁극적으로 매우 다른 데이터에는 render_to_response 전화, 그래서 내가 반환 될 수있는 슈퍼를 통해 모두를 부를 수있는 경우에도 때문에이 작동하지 않습니다 생각 해요? (이것에 대한 내 생각이 맞는지도 모르겠다. 나는 여전히 다중 상속에 관한 나의 머리를 감싸고있다.)

그런 다음 두 개의 기능을 결합한 내 자신의 get() 내가 말할 수있는 한 그들의 기능이 충돌하지 않기 때문에. 결국 다음과 같이 보입니다.

def get(self, request, *args, **kwargs): 
    form_class = self.get_form_class() 
    form = self.get_form(form_class) 

    self.date_list, self.object_list, extra_context = self.get_dated_items() 
    context = self.get_context_data(form=form, object_list=self.object_list, 
     date_list=self.date_list) 
    context.update(extra_context) 
    return self.render_to_response(context) 

올바른 방법입니까? 더 큰 문제, 어떻게 서로 사용할 수있는 유지 mixin 알고로

? 두 클래스가 모두 get()을 구현하고 있다는 것을 알고 장고 소스를 찾아야했습니다.

+0

실험적으로, 나는이 방법이 작동하는지 확인했습니다. 아직도 그것이 옳은지 궁금하다. 개념적으로. – sandinmyjoints

답변

2

는 양식 객체에 관련 또는 아닌가요? 설명에서 볼 수 있듯이, 귀하의 연락 양식이 일종의 사이드 바 또는 비슷한 사이트 전체 (또는 적어도 섹션 전체) 요소에 있다고 추측합니다.

그게 내가 전혀보기에서 폼을 포함하지 않을 맞으면

; 대신 태그 나 포함 또는 유사한 방법을 사용하여 별도로 정의 된 템플릿을 배치합니다.

+0

맞아, 인덱스보기에 본질적이지는 않지만 사이드 바의 일부입니다. 포함 태그는 많은 의미가 있습니다. – sandinmyjoints