2013-08-30 2 views
0

나는 간단한 '할 일 목록'응용 프로그램을 만들고 있습니다. 설명이있는 항목 1 개 및 상태 1 개의 항목 '으로 표시되며 각 항목은 불완전하거나 완전 할 수 있습니다.중복 값이 ​​드롭 다운에

<h1> To do list </h1><br> 
{% if itemlist %} 
    {% for desc in itemlist %} 
     <li>{{desc}}<select> 
         {% for status in statuslist %} 
         <option value="{{status.id}}">{{status}}</option> 
         {% endfor %} 
         <option selected>{{desc.status}}</option> 

        </select> 
     </li> 
    {% endfor %} 
{% else %} 
    <p> No Items Found </p> 
{% endif %} 

내 문제는 두 값을 드롭 다운 목록을 채우고 자동으로 데이터베이스에 포함되고있는 값을 보여주고있다 :

나는 내 HTML 템플릿에 다음 있습니다. 내 현재 코드로 개최되는 값이 제대로 표시되고 있지만,이 중 하나를 보여주고있다 그래서이 드롭 다운에 중복되는 :

'incomplete' 
'complete' 
'incomplete' 

또는

'incomplete' 
'complete' 
'complete' 

대신

'incomplete' 
'complete' 

<option> 태그에 selected="{{desc.status}}"을 추가하려고 시도했지만 각 항목에 첫 번째 값이 채워집니다. 보고 싶은 것을 반영하도록 수정하려면 어떻게해야합니까?

+0

내가 사용하는'statuslist = status.objects.distinct()'대신'statuslist = status.objects.all()'하지만이 같은 돌아왔다. 이 값은 드롭 다운에서 중복되는 상태 테이블에 중복되지 않습니다. 템플릿에 내 구문에 문제가 있다고 생각합니까? 궁극적으로 나는 결과를 db에 게시하기 위해 양식을 사용할 것입니다. –

+0

@Nikhil Doomra의 대답을 참조하십시오. 문제를 해결할 것입니다 –

답변

2

다음 코드를보십시오 :

<h1> To do list </h1><br> 
{% if itemlist %} 
    {% for desc in itemlist %} 
     <li>{{desc}}<select> 
         {% for status in statuslist %} 
          {% if status==desc.status %} 
           <option value="{{status.id}}" selected>{{status}}</option> 
          {% else %} 
           <option value="{{status.id}}">{{status}}</option> 
          {% endif %} 
         {% endfor %} 
        </select> 
     </li> 
    {% endfor %} 
{% else %} 
    <p> No Items Found </p> 
{% endif %} 
+0

이것은 부분적으로 작동했습니다 :'남은 부분을 파싱하지 못했습니다 '오류를 던진 동등성 대신'{% ifequal status desc.status %}'를 사용했습니다. –

+0

사실 나는 문법을 몰랐다. 나는 당신의 논리를 보면서 말할 수 있었다. :) –

관련 문제