장고의 클래스 기반 뷰 (매우 새로운 것), 특히 ListView를 이해하려고합니다. 나는 비즈니스 논리가 어디로 가야 하는지를 이해하기 위해 고심하고있다. 예를 들어 말해, 나는 다음과 같은 클래스가 : 그것은 잘 작동하고 난 볼 수 있어요listview 클래스에 비즈니스 로직을 포함 할 곳 클래스 메소드
#views.py
class DisplayListView(ListView):
model = Cars
template_name = "searchres_list.html"
paginate_by = '5'
context_object_name = "titles"
def get_context_data(self, **kwargs):
context = super(SearchDisplayListView, self).get_context_data(**kwargs)
# custom logic whoch spits out "now". in this example [1 -->10]
context['now'] = [1,2,3,4,5,6,7,8,9,10]
return context
- 내 템플릿 [1> 10]을. 그러나 ListView에서 사용할 수있는 메서드를 살펴보면 get_queryset 메서드에 내 논리를 포함시킬 수 있음을 알았습니다. 그래서, 뭔가 같은 : 데프 get_context_data
-
:
- def get_queryset
def get_queryset(self):
# Fetch the queryset from the parent get_queryset
queryset = super(SearchDisplayListView, self).get_queryset()
# custom logic whoch spits out "now". in this example [1 -->10]
queryset = [1,2,3,4,5,6,7,8,9,10]
return queryset
그래서, 내 대신 (바보) 질문 (! 아니면 모든 완전히 잘못이 가지고있다), 어디 비즈니스 로직이 이상적으로 가야한다입니다
감사합니다.
덕분에 몇 가지 통찰력을 준 귀하의 ListView에 대한 queryset "이걸 설명해 주시겠습니까?. 보시다시피, 쿼리 세트 나 컨텍스트 데이터를 템플릿에 전달할 수 있습니다. 템플릿 태그 이외에 모든 것이 데이터 쿼리 세트 나 컨텍스트에 관계없이 모든 것이 정상적으로 작동하는 것처럼 보입니다. 그렇지 않은가요? – AJW
그래서''queryset'' 속성을''get_queryset'' 메소드에서 변경하면 기본적으로 템플릿의''object_list''가 변경됩니다. ''get_queryset''에서 컨텍스트에 폼 객체를 추가 할 수 없습니다. 이를 위해서''get_context_data''를 사용해야합니다. – dragoon
고마워요 - 지금이 점을 이해합니다! 수락 대답 :) – AJW