2015-10-14 3 views
0

Я хочу показать 2 модели (вход; результат) в одном шаблоне HTML (Результат):Джанго Ошибка: при показе двух моделей в одном HTML

ошибка является «ResultView» не определен. Пожалуйста, поправьте меня, если что-то не так. Заранее благодарю за ваше предложение.

Результат - Views.py

from result.models import Result 
from inputform.models import Input 

class ResultView(ListView): 
    context_object_name = 'result_list' 
    template_name = 'result_list.html' 
    queryset = Result.objects.all() 

    def get_context_data(self, **kwargs): 
     context = super(ResultView, self).get_context_data(**kwargs) 
     context['input'] = Input.objects.all() 
     return context 

URL

from django.views.generic.list import ListView 
from result.views import ResultView 

    urlpatterns = patterns('', 

    url(r'^result_list/$',ResultView.as_view(),name='dupont'), 
    url(r'^input', 'inputform.views.input',name='input'), 
) 

result_list --- HTML

<div class="basicinfo">   <!--Input information--> 
    {% for input in input_list %} ------If here correct? 
     <table border="1" cellpadding="1"> 
     <tr> 
      <td align="left">Company</td> 
      <td>{{input.company}}</td> 
     </tr> 
     <tr> 
     </table> 
    {% endfor %} 
</div> 

<div class="result">   <!--Result information--> 
    {% for result in Result_list %}    ----If here correct? 
     <table border="1" cellpadding="1"> 
     <tr> 
      <td align="left">Totao</td> 
      <td>{{result.Total}}</td> 
     </tr> 
     <tr> 
     </table> 
    {% endfor %} 
+0

Найдено опечатка в 'URL (г '^ result_list/$ ', ReultView.as_view(), name =' dupont ') 'Это' Результат 'вместо' Reult '. Кроме того, вы импортировали ResultView в свой urls.py? – Cheng

+0

Вы импортировали ListView в свои views.py? – pythad

+0

Да, я импортировал ListView. –

ответ

1

У вас есть орфографические ошибки в ваш urls.py. Вы пытаетесь использовать ReultView вместо ResultView. Чтобы получить доступ к данным в ваших шаблонах, вы должны использовать свои имена контекстов. Если вы добавили Input объекты как context['input'] = Input.objects.all(), вам нужно петлю над ним таким образом:

<div class="basicinfo"> 
    {% for input_object in input %} 
     <table border="1" cellpadding="1"> 
      <tr> 
       <td align="left">Company</td> 
       <td>{{input_object.company}}</td> 
      </tr> 
     </table> 
    {% endfor %} 
</div> 

Ваше result_list имя result_list не Result_list:

<div class="result"> 
    {% for result in result_list %} 
     <table border="1" cellpadding="1"> 
      <tr> 
       <td align="left">Totao</td> 
       <td>{{result.Total}}</td> 
      </tr> 
     </table> 
    {% endfor %} 
</div> 
+0

Спасибо, это именно то, что меня озадачивает. –

1

Вы импортировали ListVie w вместо ResultView в ваш urls.py.

1
  1. Вам нужно импортировать ResultView в urls.py
  2. Вы назвали context_object_name быть result_list, когда вы ссылаетесь его в result_list.html, вы должны придерживаться result_list вместо Результаты поиска
  3. Beca Используете ли Вы писали context[input]=... это означает, что, когда вы к нему доступ в шаблоне, имя входного списка является вход вместо input_list так, вы должны использовать:

    {% for item in input %} 
        ... 
    
Смежные вопросы