2

List와 Create를 제네릭 클래스 뷰와 기능적으로 결합하는 가장 쉬운 방법을 찾고 있습니다.
하단에 새 항목을 추가하는 양식 및 항목 목록이있는 페이지를 만들고 싶습니다.mixins를 사용하여 Create 및 List 클래스 기반의 일반 뷰를 결합 할 수 있습니까?

mixin 아키텍처는 필요한 클래스를 결합 할 수 있다고 생각했지만하지만 아직 운이 없었습니다.

이 거의 작동합니다

class ResourceListView(ListView, BaseCreateView): 
    context_object_name = 'resources' 
    model = Resource 
    form_class = ResourceForm 

그러나 form 템플릿 무효 출력에있는 것은 충돌 (형태가 유효 할 때, 그것은 괜찮습니다) 내부에 액세스 할 수 없습니다.
이것은 다중 상속과 관련이있을 수 있지만 파이썬에 아직 익숙하지 않아서 혼란 스럽습니다.

mixins의 일부를보기 - 만들기보기에 결합하는 간단한 방법이 있습니까? 아니면 내 자신을 내야합니까?

+1

이것은 [이 게시물] [1]에서 읽은 (답변 한) 것과 동일한 문제라고 생각합니다. [1] : http://stackoverflow.com/questions/9338181/django-mixing-listview-and-createview – jantoniomartin

답변

3

참고 : 더 이상이 솔루션을 권장하지 않습니다. this은 훨씬 더 깨끗합니다.

class ListCreateView(ListView, BaseCreateView): 
    def get_context_data(self, **kwargs): 
     self.object = None 
     self.object_list = self.get_queryset() 

     form_class = self.get_form_class() 
     form = self.get_form(form_class) 

     kwargs.update({'object_list': self.object_list, 'form': form}) 

     context = super(ListCreateView, self).get_context_data(**kwargs) 
     return context 

만들고 (이 있는지 몇 가지 추가 데이터베이스 호출을하지 발행 할 수 있지만) 목록을 모두 잘 작동 : 시행 착오 (그리고 장고 소스보고)에 의해

, 나는이 쓴 .

+0

나를 위해 매우 좋은 일했다! 업데이트를 위해, 나는 여분의 페이지를 사용할 것이지만,리스트/생성을 위해, 그것은 아주 좋습니다! – alanjds