Произведите модель Django как таблицу

У меня есть определение представления, которое (пытается к) производит модель как таблицу. Это - то, что я имею до сих пор:

def output_table(request):
    output = My_Model()
    return render_to_response('outputtable.html', {'output': output})

Вот HTML для outputtable.html:

<html>
<table>
    {{ output.as_table }}
</table>
</html>

Что я делаю неправильно?Это не работает. Теперь, это передает модель правильно, потому что, если я изменяюсь My_Model() кому: My_Model.objects.all() и затем вывод это как просто {{ output }} затем это показывает мне, что я видел бы в оболочке Django.

6
задан Daniel Holmes 7 November 2019 в 15:00
поделиться

3 ответа

Если вы просто хотите вывести одну конкретную модель, измените свой шаблон на что-то вроде

<tr>
  <td>Name:</td>
  <td>{{ output.name}}</td>
</tr>

для всех полей, которые вас интересуют. Если это то, что вы хотите сделать для любой произвольной модели в своем приложении, взгляните на этот фрагмент . Это предоставит вам коллекцию полей для цикла.

1
ответ дан 17 December 2019 в 07:04
поделиться

Нет метода as_table в экземпляре модели ( MyModel () ) или в наборах запросов ( MyModel.objects.all () ). Возможно, вы видели as_table как метод форм as_table . У вас там нет формы.

Если вы хотите распечатать экземпляр модели / набор запросов в виде таблицы, вам придется спроектировать ее самостоятельно.

0
ответ дан 17 December 2019 в 07:04
поделиться

Итак, вам нужно сделать следующее:

1) добавить

из django.forms import ModelForm в ваши модели. py

2) добавьте

class My_Model_Form(ModelForm):  
           class Meta:  
               model = My_Model 

3) в свой views.py измените output = My_Model () на output = My_Model_Form ()

Теперь все готово. Итак, уловка состоит в том, чтобы унаследовать вашу форму от исходной модели.

2
ответ дан 17 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

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