0

Я новичок в django, хочу передать некоторые данные в мой шаблон, используя классический вид. для этого я использовал просмотр шаблона. но не в состоянии добиться успеха.Django Тип шаблона не работает

ввиду

class MessagesSummaryView(generic.TemplateView): 
    template_name = 'message_history.html' 
    log_dict = {} 

    def get_context_data(self, **kwargs): 
     context = super(MessagesSummaryView, self).get_context_data(**kwargs) 
     cur = connection.cursor() 
     cur.execute("SELECT logmsg.message_id, COUNT(logmsg.log_id) AS TotalUsers, logmsg.sent_on AS Sent_ON, logmsg.log_status, msg.message_subject FROM sendmessage_log_messages logmsg, sendmessage_messages msg WHERE from_name = '"+ str(request.user.email) +"' and logmsg.message_id = msg.message_id GROUP BY logmsg.message_id, logmsg.sent_on, logmsg.log_status, msg.message_subject;") 
     rows = cur.fetchall() 
     count = 0 
     for row in rows: 
      temp={} 
      temp['message_id'] = row[0] 
      temp['count'] = row[1] 
      temp['Sent_ON'] = str(row[2]) 
      temp['message_subject'] = row[3] 
      log_dict[row[0]] = temp 
     context['message_history'] = self.log_dict 
     return context 

и в шаблоне

<table id="mytable" class="table table-bordred table-style-two" style="table-layout:auto; border:black solid thin;"> 
       <tbody> 
        <div id="content"> 
        {% for contact in message_history %} 
        <tr> 
         <!-- <td style="text-align:center;">{{ contact.list_id }}</td> --> 
         <td style="text-align:left; font-size:small; width:10%;">You Had Send Message : {{ contact.message_subject }} to {{ contact.TotalUsers }} on {{ contact.sent_on }}. <a href="/message/?message_id={{ contact.message_id}}">Show Detials</a></td> 
        </tr> 
        {% endfor %} 
        </div> 
       </tbody> 
       </table> 

, много всяких ошибок была решена, но данные не отображается на странице, и один, что

global name 'request' is not defined 

ответ

1

Проблема в строке cur.execute("SELECT logmsg.message_id, COUNT(logmsg.log_id) AS TotalUsers, logmsg.sent_on AS Sent_ON, logmsg.log_status, msg.message_subject FROM sendmessage_log_messages logmsg, sendmessage_messages msg WHERE from_name = '"+ str(request.user.email) +"' and logmsg.message_id = msg.message_id GROUP BY logmsg.message_id, logmsg.sent_on, logmsg.log_status, msg.message_subject;") , где вы пытаетесь использовать request.user.email.

Вместо этого используйте вместо этого self.request.user.email.

+0

это работает, но данные по-прежнему не отображаются на странице шаблона. –

+0

Попробуйте добавить '' {{message_history}} '' где-нибудь в вашем шаблоне (перед элементом таблицы), чтобы убедиться, что ваша таблица фактически содержит что-то (если вы видите '' [] '', то ваша таблица пуста, и вам, вероятно, нужно будет уточните ваш запрос) – Serafeim

+0

yeh, данные отправляются в виде вложенного словаря ... '{40: {'count': 2L, 'message_subject': u'Delivered ',' message_id ': 40,' Sent_ON ':' 2015-01-22 12: 37: 58.631670 + 00: 00 '}, 41: {' count ': 14L,' message_subject ': u'Delivered', 'message_id': 41, 'Sent_ON': '2015-01- 22 12: 37: 58.631670 + 00: 00 '}} ' –

Смежные вопросы