20.03.13 13:07 작성
·
178
0
템플릿 상속에 대한 개념을 잘 이해했습니다. 다만, 적용해서 만들 때 문제가 생겨서 문의드립니다.
제가 하려는 건
왼쪽 사이드 바에는 post 리스트를 쭉 추가하고 (for문을 이용해서 p.title만 호출해 각 href= detail page/{}로 연결)
오른쪽 화면에는 detail page가 호출되게 하는 것입니다.
그래서 base.html에는 for문을 이용해 리스트가 잘 호출되었는데, 이를 유지한 채 detail page가 호출되면 리스트는 호출되지 않고, detail page의 내용만 호출됩니다. (디테일 페이지에서는 object.content로 표현했습니다.)
아마도 object list에서 object들을 불러오는 것과 단일 object.content를 불러오는게 충돌해서 list는 안 불러와지는거 같은데, 어떻게 해야 동시에 불러올 수 있을까요?
답변 2
1
2020. 03. 15. 20:13
제 강의와 똑같이 views.py가 되어 있다는 전제하에 말씀드리겠습니다.
아래는 PostDetail 입니다.
class PostDetail(DetailView):
model = Post
def get_context_data(self, *, object_list=None, **kwargs):
context = super(PostDetail, self).get_context_data(**kwargs)
context['category_list'] = Category.objects.all()
context['posts_without_category'] = Post.objects.filter(category=None).count()
context['comment_form'] = CommentForm()
return context
post detail 페이지에서는 object_list가 무엇인지 정의되어 있지 않습니다. object_list는 PostList 클래스에서 자동으로 만들어지는 요소였죠.
DetailView를 이용해서 model = Post라고만 하면, object 만 자동으로 만들어집니다. 이 이외의 자료를 DB에서 가져오려면 get_context_data에서 가져와야 하죠.
get_context_data 안에
context['object_list'] = Post.objects.all()
를 추가해보세요.
0