2012-12-29 2 views
0

첫 번째 장고 프로젝트를 진행하고 있습니다. 일대 다 데이터베이스 관계의 양면을 포함하는 복합 페이지를 표시해야합니다. 가능하다면 장고를하려고하면서 (클래스 기반의) 일반적인 뷰를 고려했다. 내장 된 일반 뷰에는 비슷한 것이 없으므로 SingleObjectMixinMultipleObjectMixin을 사용하여 복합 일반 뷰를 해킹했습니다. 이는 View 클래스를 확장해야한다는 것을 의미합니다.Django에서 화합물 종합보기?

이 문제를 되돌아 보면, 이것은 내 의견으로는 아주 사소한 것이어야하고 나는 그 문제를 해결하기 위해 잘못된 길을 택했다고 생각합니다. 그래서 SO 커뮤니티에 도움을 요청합니다.

  • 이 문제의 올바른 해결책은 무엇입니까?
  • 어떻게 해결할 수 있습니까?

감사합니다.

+0

(Object.relationship.all()을 통해) 관계의 많은 부분을 반복합니다. 많은 측면 개체를 통해 페이지 매김이 필요하다면 문제가 발생합니다. 'ListView'와'SingleObjectMixin'을 함께 사용하면됩니다. (장고의 개발 문서에있는 지시 사항이 있습니다.) (https://docs.djangoproject.com/en/1.5/topics/class-based-views/mixins/# using-single-objectmixin-with-listview)를 사용하여). 달성하고자하는 것에 대해 좀 더 자세하게 설명하지 않으면 어떻게하면 문제를 공격 할 수 있는지 알기가 어렵습니다 .-) –

+0

@JamesAylett 사실, 그 문서에서 설명 된 것과 똑같은 것을 찾고있었습니다. 이제 1.4에서 작동하는지 확인해야합니다. 나는 그 문서를 이전에 찾지 못했을 정도로 멍청하다고 느낍니다! – GZaidman

+0

은 1.4에서 잘 작동 할 것입니다. 원래 초안을 작성했을 때 출시 된 사이트에서했던 작업을 기반으로했기 때문에 :-) 항상 확인하는 것이 좋습니다 ... –

답변

0

단순히 (SingleObjectMixin를 사용하는) DetailView을 사용하고 템플릿의 예에의 액세스 특성을 통해 관련 개체에 액세스 할 것입니다 : 당신이의`를 사용할 수없는 이유를 잘 모르겠어요

<h2>Main Object</h2> 
<p>{{ object.some_field }}</p> 
<h2>Related Object</h2> 
{% with related=object.related_whatever %} 
    <p>{{ related.some_field }}</p> 
    <p>{{ related.other_fied }}</p> 
{% endwith %}