2016-06-14 2 views
0

저는 자동차 데이터를 가지고 있으며 부트 스트랩 목록 그룹에 표시하려고합니다. 문제는 한 자동차 브랜드가 번만 표시되기를 바랍니다.Django의 부트 스트랩리스트 그룹에 데이터를 표시합니다.

{u'cars': [{u'brand': u'Ford', u'model': u'Focus'}, {u'brand': u'u'Ford', u'model': u'Fiesta'}, {u'brand': u'u'Toyota', u'model': u'Hilux'}] 

나는 views.py에 차를 목록에 추가합니다 http://www.bootply.com/XEnAquIInD

좋아하지 :

for i in readable_json["cars"]: 
      cars.append({ 
       'brand': i['brand'], 
       'model': i['model'], 
       }) 

그래서,이 예제에서 내가 그 부트 스트랩 목록 - 그룹에서 다음과 같이 표시됩니다 싶어 이 : http://www.bootply.com/2YX7PgB1ch

문제는 장고 템플릿에 내게 온다. 템플릿에서 자동차를 반복 할 때 목록 항목에 대해 HTML에 다른 데이터 - 상위 ID가 있어야합니다. 또한, 내가 확인할 수있는 방법, 한 번 이상 자동차 브랜드가 표시되지 않았습니까?

<div id="MainMenu"> 
     <div class="list-group panel"> 
      <div href="#demo" class="list-group-item list-group-item-success" data-parent="#MainMenu">Laitteet</div> 
      <div class="collapse in" id="demo"> 

      {% for car in cars %} 

      <a href="#{{ ??? }}" class="list-group-item" data-toggle="collapse" data-parent="#{{ ??? }}">{{ car.brand }} <i class="fa fa-caret-down"></i></a> 

      <div class="collapse list-group-submenu" id="{{ ??? }}"> 
       <a href="#" class="list-group-item" data-parent="#{{ ??? }}">{{ car.model }}</a> 
      </div> 
     {% endfor %} 
     </div> 
    </div> 
</div> 
+2

이 - 당신이보기에 그렇게하고 전에 데이터를 필터링해야 템플릿에 전달됩니다. 고유 한 ID를 추가하면 간단 해집니다. – solarissmoke

+0

다음 두 가지 목록을 작성해야합니까? 하나는 자동차 용이고 다른 하나는 ID 용입니다 : s? – MMakela

+0

아니요. 데이터의 출처에 따라 부분적으로 다릅니다. 출처에 고유 한 ID (예 : 데이터베이스 ID)가 있습니까? 그렇지 않다면 자동차 이름과 같은 고유 한 필드를 [slugify] (https://docs.djangoproject.com/en/1.9/ref/utils/#django.utils.text.slugify) 할 수 있습니다. – solarissmoke

답변

0

나는 당신의보기에서 데이터를 정리하기 위해 이런 짓을 할 것이다 :

cars_seen = set() 
for i in readable_json["cars"]: 
    car_identifier = '{}-{}'.format(i['brand'], i['model']) 
    if not car_identifier in cars_seen: 
     cars.append({ 
      'brand': i['brand'], 
      'model': i['model'], 
      'id': car_identifier, 
     }) 
    cars_seen.add(car_identifier) 

cars 이제 (brand + model가 고유성을 정의하는 방법이다 가정) 독특한 자동차의 목록이 포함됩니다. 템플릿에서

, 당신은 다음과 같은 뭔가 고유 ID를 생성 할 수 :

<a href="#{{ car.car_identifier|slugify }}">...</a> 
당신은 템플릿의 고유성을 확인 같은 로직을 수행해서는 안
+0

여전히 자동차 목록에는 http://www.bootply.com/2YX7PgB1ch와 같은 여러 브랜드 이름이있을 수 있으므로 식별자가 제대로 작동하지 않습니다. – MMakela

+0

예 - 당신이 내 코드를 따른다면 그것을 설명합니다. 기성품의 솔루션을 여기에서 얻지 않고 기본 로직을 이해하여 직접 구현할 수 있어야합니다. – solarissmoke

관련 문제