2016-08-09 251 views
0

我想从数据库中获取数据并使用django-python将其发送到html页面。将数据从django发送到html

我在Python文件做什么是

def module1(request): 
    table_list=student.objects.all() 
    context={'table_list' : table_list}  
    return render(request,'index.html',context) 

,而在HTML是

<div class="rightbox"> 
      In right box. data is :<br> <br>    
     {% if table_list %} 
     <ul> {% for item in table_list %} 
       <li>{{ item.name }}</li> 
       <li>{{ item.address }}</li> 
       <li>{{ item.mob_no }}</li> 

       {% endfor %} 
     </ul> 
     {% else %} 
      <p>somethings is wrong</p> 
     {% endif %} 

     </div> 

没有被发送到HTML文件。它不断在其他区块进行。 我不知道我在哪里犯错。请帮助我。

+0

从该视图函数中显示的'print(table_list)'是什么? –

+0

它不工作。我正在使用django 1.9.9 –

+0

它显示错误为: 无法解析余数:'(table_list)'from'print(table_list)' –

回答

0

到目前为止,我们没有看到student模型(这应该是在你的models.py并在vievs.py进口)和您的代码不抛出任何异常看来你table_list是空的。迭代它,你可以使用内置的for ... empty模板标签更方便的方法:

<div class="rightbox"> 
    In right box. data is :<br> <br>    
    <ul> 
    {% for item in table_list %} 
     <li>{{ item.name }}</li> 
     <li>{{ item.address }}</li> 
     <li>{{ item.mob_no }}</li> 
    {% empty %} 
     <p>somethings is wrong</p> 
    {% endfor %} 
    </ul> 
</div> 

试试这个,看看会发生什么。如果你发现自己在{% empty %}区块 - 你的table_list是空的,它指向数据库中的空表。

另请检查docs为该标签。