Задать вопрос
@G_r_i_n_v_i_c_h

Как добавить Django таблицу в форму редактирования change_form.html?

Друзья, приветствую. Подскажите, как в админке добавить таблицу на страницу редактирования?

Есть 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? Или можно как-то по-другому сделать?
  • Вопрос задан
  • 138 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы