Словари шаблонов Python Django - PullRequest
0 голосов
/ 12 мая 2018

Мне нужно напечатать таблицу в моем шаблоне данных, которые уже обработаны в моем представлении.Он находится в переменной collection.OrderedDict () как:

table_dict[position] = {'date': item['date'],
                                    'document': item['document'],
                                    'details': item['details'],
                                    'quantity_balance': quantity_balance,
                                    'unit_price_balance': unit_price_balance,
                                    'total_price_balance': total_price_balance,
                                    'quantity_buy': 0,
                                    'unit_price_buy': 0,
                                    'total_price_buy': 0,
                                    'quantity_sell': 0,
                                    'unit_price_sell_avrg': 0,
                                    'total_price_sell_avrg': 0,
                                    'unit_price_sell': 0,
                                    'total_price_sell': 0,
                                    'earn_total_sell': 0}

У меня более одной позиции, вот пример консольной печати Python:

{'total_price_sell_avrg': 0, 'quantity_balance': Decimal('1.000000000000000000'), 'date': datetime.date(2018, 5, 10), 'document': '9d4f8661', 'unit_price_sell_avrg': 0, 'total_price_sell': 0, 'total_price_balan
e': Decimal('2400000.000000000000000000000'), 'quantity_sell': 0, 'unit_price_buy': 0, 'details': 'Initial Investment', 'quantity_buy': 0, 'earn_total_sell': 0, 'unit_price_balance': Decimal('2400000.0000000000
0000000'), 'total_price_buy': 0, 'unit_price_sell': 0}

{'total_price_sell_avrg': 0, 'quantity_balance': Decimal('1.500000000000000000'), 'date': datetime.date(2018, 5, 10), 'document': '09asdashd', 'unit_price_sell_avrg': 0, 'total_price_sell': 0, 'total_price_bala
ce': Decimal('3750000.000000000000000000000'), 'quantity_sell': 0, 'unit_price_buy': Decimal('2700000.000000000000000000'), 'details': '08a7sd80a7doiadsiaud0a87ds', 'quantity_buy': Decimal('0.500000000000000000
), 'earn_total_sell': 0, 'unit_price_balance': Decimal('2500000.000'), 'total_price_buy': Decimal('1350000.000000000000000000000'), 'unit_price_sell': 0}

Теперь яИмею и упорядочил таблицу, где я хочу распечатать ее, поместил ее в мой HTML-шаблон, который имеет в основном такую ​​структуру:

    <table class="tablerow">
        <tr>
            <th colspan="4"></th>
            <th colspan="3">Buys</th >
            <th colspan="3">Sells</th>
            <th colspan="3">Total</th>
        </tr>
        <tr>
            <th >Num T</th>
            <th >Date</th>
            <th >Document number</th>
            <th >Type Operation</th>
            <th >Details</th>

            <th >Quantity</th>
            <th >Unit Price</th>
            <th >Total Price</th>

            <th >Quantity</th>
            <th >Unit Price</th>
            <th >Total Price</th>

            <th >Quantity</th>
            <th >Unit Price</th>
            <th >Total Price</th>
        </tr>
        </table>

Как я могу напечатать мой словарь на моем HTML-обслуживании заказа?Я передаю словарь в качестве контекста в шаблон как:

context = {'table':table}

Я действительно ценю вашу помощь!Хорошего дня.PD: Я также пытался использовать пользовательский тег Tag, но я не смог создать тот, который работает для этого случая, может быть, я не понимаю, как они работают в этом случае.

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Чтобы напечатать словарь в html, вы можете сделать это:

{% for key, value in table.items %}
    <p>I am dictionary key: {{ key }} </p>
    <p>I am value of dictionary key: {{ value}} </p>
{% endfor %}

Единственный момент - действительно ли ваша переменная table действительно dict?Похоже, это список диктовок, потому что вы сказали ...I has more than one positions... В таком случае это может выглядеть так:

{% for t in table %}
    <p>{{ t.date }}</p>
    <p>{{ t.document }}</p>
    <p>{{ t.details }}</p>
    .....
{% endfor %}
0 голосов
/ 12 мая 2018

Вы можете получить доступ к dict в шаблонах django с точкой . {{dict.key}} возвращает {{значение}}

Точка в имени переменной означает поиск

В вашем случае:

{{ table.date }} <!--returns the date-->
{{ table.document }} <!--the document-->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...