2015-05-10 2 views
0

Использование того же объекта, как SHOW 2 разных результата с использованием шаблона django?Django: Используя тот же объект, как показать 2 разных результата в шаблоне django?

На одной странице есть два div, он должен отображать различную информацию, используя один и тот же объект.

ВХОД

объект данных имеет следующие

[ 
    { 
     "Google": [ 
      { 
       "Rating": 1, 
       "Website": { 
        "id": "1", 
        "Name": "googleplus" 
       } 
      }, 
      { 
       "Rating": 2, 
       "Website": { 
        "id": "1", 
        "Name": "googleplus" 
       } 
      }, 
      { 
       "Rating": 1, 
       "Website": { 
        "id": "2", 
        "Name": "googlemap" 
       } 
      } 
     ] 
    }, 
    { 
     "Facebook": [ 
      { 
       "Rating": 1, 
       "Website": { 
        "id": "1", 
        "Name": "facebookplus" 
       } 
      }, 
      { 
       "Rating": 2, 
       "Website": { 
        "id": "1", 
        "Name": "facebookplus" 
       } 
      }, 
      { 
       "Rating": 1, 
       "Website": { 
        "id": "2", 
        "Name": "facebookmap" 
       } 
      } 
     ] 
    } 
] 

ХОЧЕТ ВЫХОДА

DIV 1 (названия сайта должны быть уникальные значения)

ДИВ 2 (должен отображать все Имена веб-сайта)

главного старта DIV

петля 1

Google ------ DIV 1 (googleplus, googlemap) ------ DIV 2 (googleplus, googleplus, googlemap) 

петля 2

Facebook ------ DIV 1 (facebookplus, facebookmap) ------ DIV 2 (facebookplus, facebookplus, facebookmap) 

Основной конец DIV

ответ

1

Шаблон используется только для отображения данные. Если вы хотите манипулировать данными, вы должны сделать это в поле зрения. Это будет намного проще, поскольку вы можете использовать обычный синтаксис python.

Вы можете использовать что-то вроде:

all_data = <object_name>.objects.all() 
unique_data = list(set(all_data)) 

UPDATE

Если вы хотите сделать это на веб-интерфейсе, я бы рекомендовал использовать Lodash library.

Но вы, конечно, можете сделать это в простом JavaScript:

var all_data = ...; 
var unique_data = []; 
for (i = 0; i < all_data.length; i++) { 
    if (unique_data.indexOf(all_data[i]) < 0) unique_data.push(all_data[i]); 
} 
+0

Привет, Те, информация идет не из моделей, а не Сво динамические данные от API REST. и еще одна вещь, я дал простой сценарий, количество списков должно быть больше 5000 – user2224250

+0

Тогда вам нужно будет сделать это в JavaScript. Невозможно манипулировать данными, которые отсутствуют во время рендеринга с Python. –

+0

Второй вариант - создать две конечные точки API, одну со всеми данными и другую с уникальными именами. –

Смежные вопросы