Друзья, приветствую. Подскажите, как в админке добавить таблицу на страницу редактирования?
Есть MaterialAdmin. В нем переписал функцию change_view(). Все необходимые данные засунул в extra_content. Теперь хочу, чтобы под формой редактирования по этим данным были стандартные джанговые таблицы.
class MaterialAdmin(admin.ModelAdmin):
change_form_template = 'admin/change_material_form.html'
search_fields = ['name']
autocomplete_fields = ("manufacturer", )
list_display = ("_show_name_with_manufacturer",
"_show_material_groups_quantity",
"_show_boxing",
"unit",)
def get_queryset(self, request):
qs = super().get_queryset(request)
return qs.select_related("manufacturer").prefetch_related("material_group", "material_item", "unit")
def change_view(self, request, object_id, form_url='', extra_context=None):
extra_context = extra_context or {}
material = Material.objects.filter(id=object_id).select_related("manufacturer").prefetch_related("material_group", "material_item", "unit").first()
material_items = material.material_item.all()
material_groups = material.material_group.all()
works = MaterialGroupWork.objects.filter(material_group__in=material_groups).distinct()
extra_context['material_items'] = material_items
extra_context['material_groups'] = material_groups
extra_context['works'] = works
return super(MaterialAdmin, self).change_view(
request, object_id, form_url, extra_context=extra_context,
)
admin.site.register(Material, MaterialAdmin)
change_material_form.html
....
<div>
{% for material_item in material_items %}
{{ material_item }}
{% endfor %}
</div>
<div>
{% for material_group in material_groups %}
{{ material_group }}
{% endfor %}
</div>
<div>
{% for work in works %}
{{ work.work }}
{% endfor %}
</div>
Вот вместо дивов надо сделать стандартные джанговые таблицы. Посмотрел шаблон change_list_results.html, вроде бы логично подключить его и передать туда данные, но в него приходят result_headers и results. Как мне получить эти данные из моих queryset? Или можно как-то по-другому сделать?