【问题标题】:Django print sqlite db data in templateDjango 在模板中打印 sqlite db 数据
【发布时间】:2015-04-14 14:06:44
【问题描述】:

我是 django 的新手,我在将数据库数据打印到我的页面上时遇到了一些困难。我会很感激帮助 - 我知道我在做一些愚蠢的事情,但我有点碰壁了。

我已经设置了数据库,我可以毫无问题地访问其中的数据:

python manage.py shell

>>> from homepage.models import User, Oncall
>>> user_data = User.objects.all()
>>> names = []
>>> for x in user_data:
...  names.append(x.first_name + ' ' + x.last_name)
>>> names
[u'Arthur Mencke', u'John Doe']

那么在我的views.py中我有:

from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404, render_to_response
from django.utils import timezone
import datetime
from homepage.models import User, Oncall
from django.template import RequestContext, loader
from django.template import Template, Context
from django.template.defaulttags import register

def index(request):
        now = timezone.now()
        users = User.objects.all()
        return render(request, 'homepage/index.html')

def getUsers(request):
        users = User.objects.all()
        name_list = []
        for x in users:
                name_list.append(x.first_name + ' ' + x.last_name)
        return name_list

在我的 index.html 文件中:

{% if name_list %}
        {% for x in name_list %}
                {{ name_list.x }}
        {% endfor %}
{% else %}
        <b>no users</b>
{% endif %}

{{name_list|length}}

这将始终显示在浏览器中:

no users 0

我也尝试过 name_list[x] 并在没有运气的情况下搞砸了它

有什么想法吗?

干杯,亚瑟

【问题讨论】:

  • 需要将usersname_list的上下文传递给模板

标签: python django sqlite templates view


【解决方案1】:

你做错了,你没有在index视图中传递上下文,举这个例子:

def index(request):
    users = User.objects.all()
    return render(request, 'homepage/index.html', {'users': users}) # notice here we are adding our context to be used in template, you need pass it explicitly

然后在index.html:

{% for user in users %}
        <span>{{ user.first_name }} {{ user.last_name }}</span>
{% endfor %}

【讨论】:

  • 谢谢阿米尔!那成功了。事后看来,这似乎很简单,但 django 模板语言和文件之间的关系需要一点时间来适应。
猜你喜欢
  • 2017-08-19
  • 2018-11-29
  • 2013-10-20
  • 1970-01-01
  • 2015-12-21
  • 2022-01-13
  • 2021-02-14
  • 1970-01-01
  • 2019-01-17
相关资源
最近更新 更多