#django #wagtail
#django #трясогузка
Вопрос:
Как можно редактировать шаблоны, отображаемые при использовании wagtail.contrib.modeladmin
?
Предполагая
class EventsAdmin(ModelAdmin):
menu_label = 'Events'
list_display = ('title',)
Допустим, я хочу сделать заголовки интерактивными, как мне это сделать?
Я подумал, что мог бы проверить шаблоны wagtail/contrib/modeladmin/templates
и добавить что-то вроде <a href="{{ url }}" />
увы, дальше всего я обнаружил, что раздел заголовка находится в wagtail/contrib/modeladmin/templates/modeladmin/includes/result_row_value.html
том месте, где он выводит раздел заголовка через {{ item }}
тег
{% load i18n modeladmin_tags %}
{{ item }}{{ url }}{% if add_action_buttons %}
{% if action_buttons %}
<ul class="actions">
{% for button in action_buttons %}
<li>{% include 'modeladmin/includes/button.html' %}</li>
{% endfor %}
</ul>
{% endif %}
{{ closing_tag }}
{% endif %}
#modeladmin_tags.py
@register.inclusion_tag(
"modeladmin/includes/result_row_value.html", takes_context=True)
def result_row_value_display(context, index):
add_action_buttons = False
item = context['item']
closing_tag = mark_safe(item[-5:])
request = context['request']
model_admin = context['view'].model_admin
field_name = model_admin.get_list_display(request)[index]
if field_name == model_admin.get_list_display_add_buttons(request):
add_action_buttons = True
item = mark_safe(item[0:-5])
context.update({
'item': item,
'add_action_buttons': add_action_buttons,
'closing_tag': closing_tag,
})
return context
Идя дальше, я не совсем понимаю, как <td>
туда помещается заголовок with и что я могу сделать, чтобы сделать его интерактивным или настроить этот шаблон.
Скриншот для иллюстрации раздела пользовательского интерфейса