Подставляя значения в таблицу HTML? - PullRequest
0 голосов
/ 15 января 2019

Я создаю таблицу HTML для отображения полей (на складе), которые были добавлены, удалены и изменены. Заголовки обозначают владельца ящика, тип произошедшего изменения и новое содержимое ящика.

Я использую Django для моего бэкэнда.

Могу ли я перевести значения в «Типе изменения» в английские слова, а не в символы (~, - и +)? Я использую Django simple-history для записи изменений в моих моделях, и он возвращает эти символы. Я бы хотел, чтобы в моей таблице читалось «Изменено», «Удалено» и «Добавлено» вместо «~», «-» и «+» с уважением.

My table

Это view.py:

def dashboard(request):
    box_content_history = Box.history.all().order_by('-history_date')
    return render(request, 'main_app/dashboard.html', {""box_content_history":box_content_history})

HTML:

<table id="asset_changes_datatable">
    <thead>
        <tr>
            <th>Owner</th>
            <th>Type of Change</th>
            <th>Box Contents</th>
        </tr>
   </thead>
   <tbody>
   {% for item in box_content_history %}
        <tr>
            <td>{{ item.project_assigned_to }}</td>
            <td>{{ item.history_type }}</td>
            <td>{{ item.box_contents }}</td>
        </tr>
   {% endfor %}
   </tbody>
</table>

1 Ответ

0 голосов
/ 16 января 2019

Как уже упоминалось в комментариях, просто измените {{ item.history_type }} на {{ item.get_history_type_display }} в шаблоне.

Что это за колдовство и откуда оно взято?

Это на самом деле функциональность vanilla django, которая объясняется в Справочнике экземпляров модели .

Для каждого поля, в котором установлено варианты , объект будет иметь метод get_FOO_display () , где FOO - это имя поля. Этот метод возвращает «удобочитаемое» значение поля.

Почему это работает для history_type поля django-simple-history?

Довольно просто: в поле history_type есть вышеупомянутый набор choices. Я проверил это, посмотрев их исходный код на github.

"history_type": models.CharField(
    max_length=1,
    choices=(("+", _("Created")), ("~", _("Changed")), ("-", _("Deleted"))),
),
...