python - django 无法查看模板中的数据库项目
问题描述
我有数据插入到我的数据库中,但无法查看这些项目。我可以看到一个<ul>
索引,但没有数据。
$ python3 manage.py shell
Python 3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from userdash.models import AssetList
>>> ls = AssetList.objects.get(id=2)
>>> ls
<AssetList: Mike's List>
>>> ls.items_set.all()
<QuerySet [<Items: Batcoin>, <Items: Drum set>, <Items: Dildo>, <Items: Koodie>]>
>>> ls.items_set.create(user_asset="5th Item", sell_asset=False)
在 userdash/templates/userdash/list.html
{% extends 'userdash/base.html' %}
{% block title %}
<h1>List Page</h1>
{% endblock %}
{% block content %}
<h2>{{ls.name}}</h2>
<ul>
{% for item in ls.items_set.all %}
<li>{{items.user_asset}}</li>
{% endfor %}
</ul>
{% endblock %}
在 exchange2/userdash/models.py
from django.db import models
# Create your models here.
class AssetList(models.Model):
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Items(models.Model):
currencylist = models.ForeignKey(AssetList, on_delete=models.CASCADE)
user_asset = models.CharField(max_length=300)
sell_asset = models.BooleanField()
def __str__(self):
return self.user_asset
输出:
ul 输出表明数据存在,但没有显示。
如何在 django 模板中正确显示我的数据库查询?
解决方案
ls.items_set.all
您使用变量进行循环item
,但在下一行中使用名称items
(注意复数/单数)。
尝试将您的代码更改为:
{% for item in ls.items_set.all %}
<li>{{item.user_asset}}</li>
{% endfor %}
推荐阅读
- python - 当 X 是多维时,多项式回归是否有效?
- google-cloud-iot - iot-device-sdk-embedded-c 中的 IOTC_CONNECTION_RESET_BY_PEER_ERROR
- jquery - Jquery 仅适用于双击
- java - Mongo java api忽略嵌套的或/和运算符
- linux - 从命令行中删除 github 中的 ssh 密钥
- javascript - 当类处于活动状态和非活动状态时更改鼠标悬停的背景图像
- algorithm - 我无法理解 Rust 代码的区别
- spring - @EnableWebSecurity 由配置文件处理的调试布尔标志
- javascript - 在javascript中垂直定位工具提示
- kubernetes - 如何为本地 Kubernetes 集群中的应用程序分配 DNS 名称?