django не может просматривать элементы базы данных в шаблоне - PullRequest
0 голосов
/ 02 мая 2020

У меня есть данные, которые я вставляю в базу данных, но не могу просмотреть элементы. Я вижу индекс <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

вывод:

html вывод

Вывод ul указывает, что данные есть, но они не отображаются.

Как правильно отобразить запрос к базе данных в django шаблоне?

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

В {% for item in ls.items_set.all %} переменная l oop имеет имя item, а не items.

Заменить

<li>{{items.user_asset}}</li>

на

<li>{{item.user_asset}}</li>
0 голосов
/ 02 мая 2020

Вы l oop больше ls.items_set.all с переменной item, но в следующей строке вы используете имя items (обратите внимание на множественное число / единственное число).

Попробуйте изменить свой код до:

            {% for item in ls.items_set.all %}
                    <li>{{item.user_asset}}</li>
            {% endfor %}
...