2013-02-15 2 views
0

여기 누구든지 ASP.NET Pro를 사용한다면 사용자 컨트롤이 무슨 뜻인지 알 것입니다. 대신 장고에 비슷한 것을 만들고 싶습니다.Django가 ASP.NET UserControl과 동등한가

내 문제는 내 웹 사이트에 여러 페이지가 있지만 모든 페이지에 검색 표시 줄이 필요하다는 것입니다. 나는이 검색 창을 작동 할 views.py을 요구하기 때문에, 나는 그러므로 사람이 내가 할 수있는 방법을 제안 할 수 있습니다

{% include 'something.html' %} 

하는 간단한 방법을 할 수 있습니까?

답변

1

는 당신이하고자하는지 달성하기 위해 몇 가지 방법이 있습니다

Context Processors

Template Tags

상황에 맞는 프로세서는 관계없이의 값으로 템플릿 컨텍스트를 보강 할 수 있습니다 템플릿이로드 . 그것들은 Rails의 필터와 유사합니다.

컨텍스트 프로세서와 마찬가지로 템플릿 태그는 Python에서 할 수있는 모든 것을 수행 할 수 있지만 템플릿 수준에서 구현됩니다.

모든 템플릿에 무엇인가가 있어야하는 경우이를 수행하는 가장 간단한 방법 중 하나는 포함 태그를 사용하는 것입니다.이 태그는 전달 된 값을 받아 들일 수도 있습니다. 포함 태그는 최상위 레벨 템플릿, 즉 마스터 페이지에 구현 될 수 있으며 블록에 넣지 않고 덮어 쓰지 않는 한 해당 템플릿을 상속 체인에 포함하는 모든 페이지에 포함됩니다.

모든 페이지에 포함하려는 경우 처리가 필요하지 않은 경우 원하는 코드를 맨 위에있는 템플릿에 배치하고 후속 템플릿에서 상속받을 수 있도록해야합니다 .

저는 일반적으로 모든 템플릿이 상속하는 "base.html"템플릿이 있습니다. 모든 페이지에 있어야 할 것이 있다면, 거기에 넣으십시오. 기본 설정에서 원하는 것이지만 후속 템플리트에서 추가 할 수 있기를 원한다면 블록으로 배치합니다. 이 블록을 사용하면 기본 콘텐츠를 포함하거나 무시할 수 있습니다.

+0

이 user_control_log.html에

@register.filter def get_log_uc(list_log): template = loader.get_template('user_control_log.html') context = { 'list_log' : log } return template.render(context) 
  • 를 필터링이 사용자 정의와 다른 HTML 파일을로드 내가 단지의 검색어를 얻을 필요가 있다면? 나는 이것을하고있다 : tag_definitions.objects.values_list ('title', flat = True)의 정의를위한 tagstring = [definition.encode ("utf8")] 나는 그것을 얻을 필요가있다. 템플릿에, 나는 꽤 장고에 새로운 있습니다. 당신이 보여줄 수있는 어떤예요? – jdtoh

  • +1

    해당 사용 사례에 대해 포함 태그를 사용합니다. 그러면 쿼리 세트를 실행하여 부분 템플릿에 전달할 수 있습니다. 그러면 부분 템플릿이 호출되어 템플릿에 렌더링됩니다. – Brandon

    1

    나는이 게시물이 낡았다는 것을 알고 있지만, 나는 그걸 발견하고 작동하는 일종의 솔루션을 발견했다. 해결 방법이기 때문에 나는 그것을 일종의 솔루션이라고 부릅니다.

    로깅 정보를 표시하려는 몇 가지 사이트가 있습니다. 이 디스플레이는 항상 동일하게 보이며 (동일한 HTML을 가짐) 그 뒤에는 동일한 데이터베이스 테이블과 모델 클래스가 있습니다. 나는이를 사용 my_html_file.html에

    context = {'list_log': Log.objects.filter(condition = True) }  
    template = loader.get_template('my_html_file.html')  
    return HttpResponse(template.render(context, request)) 
    
  • 맥락에서 로그 항목의 목록을 넣어 views.py에서

    1. :

      내 솔루션/해결 방법은 장고 필터를 사용하여 맞춤 필터

      {{ list_log|get_log_uc|safe }} 
      
    2. 평 나는 사용자 정의 컨트롤 해당 HTML

      {% for log in list_log %} 
          <p>log.something</p> 
      {% endfor % 
      
  • 관련 문제