2010-08-13 5 views
1

작동하지 않을 수 있습니다 왜 그것이 작동하지 않을 수 있습니다, 심지어 내가 'db.templatefilters'그것은 너무 일할 수 없다 추가 ... 아무도 도와 줄래? 아래장고 사용자 지정 템플릿 필터는 내가 errror이

:) 감사합니다 내 파일 구조 :

db/ 
    models.py 
    templatefilters/ 
     __init__.py 
     run_target.py 
templates/ 
    run.html 

run_target.py

{% extends "index.html" %} 
**{% load run_target %}** 
{% block content %} 
<div style="margin-left:150px; margin-top:10px"> 
<a href="/home">Home</a> >> <b>run</b> 
</div> 
<form name="form" method="post"> 
<br> 
<input type="submit" value="Delete" style="margin-left:149px; width:80px; height:30px"> 
<table border="1"; style="margin-left:150px; border-collapse:collapse;margin-top:10px"; cellpadding="4" borderColor=black> 

{% for run in run_list %} 
    <tr> 
    <td>{% dictKeyLookup target_dict run.id %}</td> 
    </tr> 
{% endfor %} 
</table> 
</form> 
{% endblock %} 

답변

9

INSTALLED_APPS 설정에서 db

from django import template 
register = template.Library() 

@register.simple_tag 
def dictKeyLookup(the_dict, key): 
     return the_dict[key] 

run.html?

그렇다면, 당신이 놓치고있는 두 개의 다른 것들과 같은 경우는 다음과 같습니다

  • 당신의 db 폴더 자체 (당신이 부모를 당신의 templatefilters 디렉토리에 하나를 가지고 있지만 한의 __init__.py 파일 디렉토리)
  • templatefilters 폴더는 templatetags이라고합니다 (문서의 Code layout 섹션 참조).

는 덧붙여, db는 응용 프로그램에 대한 아주 좋은 이름이 아닙니다 - 더 밀접하게 그것을 수행 무엇를 식별 뭔가를 호출합니다.

+0

답장을 보내 주셔서 감사합니다. 폴더 이름 'templatetags'을 바꿀 수 없으므로 다시 한번 감사드립니다. :) – LoveTW

+11

그리고 서버를 다시 시작하는 것을 잊지 마시고 ... 사소한 것처럼 보일 수 있지만 제 문제였습니다. –

+0

서버를 다시 시작하면 문제가 해결되었습니다. –

0

모든 것이 문서와 같이 수행 할 경우 :

  • 초기화 응용 프로그램 폴더 안에 평, 내부 settings.py
에서 INSTALLED_APPS 섹션에서 폴더
  • 응용 프로그램 이름을 templatetags

    그런 다음 서버가 실행되는 동안 새 태그/필터를 사용하여 모듈을 코딩 한 경우 서버를 다시 시작하면 문제가 해결 될 수 있습니다.