2011-08-01 7 views
0

는이 코드 상황장고 템플릿 필터

이 반환 결과는 항상 "예"로 설정되며 결과를 반환하는 방법은 "아니요" 도와주세요. 감사

+0

죄송합니다. '7,10'은 가치가있는 데이터베이스 쿼리의 결과입니다. – Adit

답변

0

1|floatformat 반환 1 및 상태 점검 장고가 True를 반환 문자열로 '7,10'을 고려하기 때문에 1'7,10'에있는 경우. 목록을 전달하면 아무런 결과도 반환하지 않습니다.

1

실제로 여기에서 무엇이 일어나고 있는지 정확히 파악하기 란 어렵습니다. 실제로 데이터베이스에서 나오는 데이터를 더미 데이터로 대체하기 때문입니다.

작성한대로 '7,10'문자열에 '1'문자열이 있기 때문에 결과는 항상 "예"입니다. 당신이 달성하려고하는 것은 것

소리 :이 숫자가이 목록에

경우, 예, 그렇지 않으면.

{% if mynumber in yeslist %} yes {% else %} no {% endif %} 

이 있다고 가정합니다 :

  • mynumber 숫자
  • yeslist는 숫자
  • 의 목록입니다

그래서 좀 더 진짜이 템플릿을 다시 보자

나는 무엇을 사용하고 있는지 잘 모르겠다. 이 경우에는 loatformat입니다.

위의 주장이 사실이 아니며 문자열을 사용해야하는 경우 작업이 훨씬 어려워지고 서버 목록의 yeslist를 처리해야합니다. 예를 들어, yeslist가 "7,10,123,93,9,19,83"과 같은 문자열 일 경우 목록에 숫자 8이 있는지 여부를 알아 내면 템플릿에서 불필요하게 어려울 것입니다. 더 쉽게는보기에 그것을 할 수 있습니다 :

def myview(request): 
    ctx = {} 
    # ... do some work ... 
    # yeslist now has a string like "7,10,123,93,9,19,83" 
    ctx['yeslist'] = yeslist.split(',') 
    # ... do more work, and render the response ... 

지금, {% if '8' in yeslist %} 더 이상은 문자열 일치 안하고 있기 때문에,이 그룹 구성원을하고있어, 거짓을 리턴하지 않습니다.

+0

덕분에 Idan Gazit이 정확히 무슨 뜻인지 알 수 있습니다. 나는이 문제에 대한 당신의 해결책을 시도 할 것입니다. 고마워요 – Adit

+0

Adit : 내 게시물이 도움이된다면, 다음 upvote 또는 동의하십시오! –