2010-12-16 3 views
1

이 작업을 수행하는 가장 좋은 방법을 찾으려고합니다. 나는 꽤 잘 수행 된 Django 프로젝트를 inhereted했다.의견 : django app에이 코드를 넣을 위치 :

사용자가 페이지 (이 앱의 모델 및 모듈은 모델에 포함)에 포함 할 수있는 사전 코딩 된 모듈이 관리자에게 잘 남아 있습니다 (예 : 측면 링크, 광고, 지속적인 연락처).

새로운 요구 사항은 내부 링크 모듈을 동일한 우물에 삽입하는 것입니다. 이러한 링크는 다른 모듈과 같은 방식으로 페이지와 연결되지 않으며 별도로 여러 조인 (join)을합니다. 즉 모든 페이지에서 한 세트의 링크로 하나의 링크를 재사용 할 수 있습니다.

템플릿 의사 코드는 다음 링크가 동일한 아니라 모듈에있을 필요가

if page has modules: 
loop through modules: 
    write the pre coded content of module 

때문에, 나는 링크 자리의 슬러그와 "링크를 자리 모듈"을 만들었습니다.

새로운 의사 코드는 다음과 같습니다

if page has modules: 
loop through modules: 
    if module.slug is "link-placeholder": 
    loop through page.links and output each 
    else: 
    write pre-coded module 

내 질문은 어디에 링크이 출력을 쓸 수있는 가장 좋은 장소는 무엇입니까?

  1. 템플릿에 넣어 밖으로 빌드 (쉬운,하지만 가지 지저분 - 코드가 좋은 지금 깔끔)
  2. 이 페이지 모델의 기능을 빌드 : 제가보기에는, 내 옵션은 은 "링크 자리가 발견 될 때) page.get_internal_link_ouutput. 기본적으로이 조회, 내부 링크 모듈의 출력을 구축하고 인쇄 할 것이다라고.
  3. 사용자 지정 서식 태그와 같은 일을 할.

을 내가 2쪽으로 생각이 기울고 있어요 또는 3,하지만 그것을 할 올바른 장소처럼 보이지 않는 경우가 있습니다. django 애플 리케이션에 코드를 넣을 수있는 가장 좋은 장소에 대해서는 약간 혼란 스럽지만 프레임 워크가 정말 마음에 든다.

미리 조언 해 주셔서 감사합니다.

답변

2

맞춤 템플릿 태그를 사용하는 것이 좋습니다.

코드를 직접 템플릿에 쓰는 것이 많은 논리에 적합한 장소가 아니며 모델에 템플릿 관련 메서드가 추가되어 있어야한다고 생각하지 않습니다. 템플릿 별 로직을 템플릿 별 클래스 및 함수 (예 : 템플릿 태그)에 포함시키는 것이 좋습니다.

관련 문제