@chyngys_94
middle-class developer

Как на Django распечатать модель или форму модели со всеми relation связанными таблицами?

Доброго времени суток.
Уже день мучает одна проблема. В модели есть свойства моего обьекта, как его вывести в текстовом виде в DetailView, как таблицу.
Что я пробовал: Не получилось пробежаться по циклу по обьекту ответа. Выдает ошибку Object no iterable.
Вариант object.filter().values() не устраивает так как у меня в таблице в основном через foreign key и они выводятся как pk. А мне нужна не первичный ключ вывести а значение и еще там не получилось взять значение verbose_name.
Пробовал извращатся посредствам самописных фильтров в шаблоне, желаемого результата не дало.
Единственная моя зацепа это ModelForm, но она выдает select-ы и инпуты. Виджеты до этого сам не писал.
Какие варианты можно посмотреть.

До этого на php писал.
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
crazyzubr
@crazyzubr
Python backend-developer
Возможно, подойдет следующий способ.
Во вьюхе добавляется переменная advert_fields в контекст:
class AdvertDetailView(DetailView):
    model = Advert
    template_name = "advert/_detail.html"
    context_object_name = "advert"

    def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         advert_fields = []
         for field in self.model._meta.fields:
             advert_fields.append((field.verbose_name, str(getattr(self.object, field.name))))
         context['advert_fields'] = advert_fields
         return context


В шаблоне выводятся так:

<ul>
{% for verbose_name, value in advert_fields %}
    <li>{{ verbose_name }} -> {{ value }}</li>
{% endfor %}
</ul>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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