无法显示模板上数据库中的数据

时间:2019-04-26 11:31:14

标签: python sql django

我是django的初学者,我的问题是: 我的数据库中已经有数据,但是无法在模板上显示它们。

我多次尝试更改视图的功能和模板语言,但对我没有任何作用

在views.py

def my_financial_data(request):
    mydata = DataItem.objects.all()
    print(mydata)
    return render(request, 'home.html', {'mydata': mydata})

在models.py

class DataItem(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100, default='')
    lastprice = models.CharField(max_length=100, default='')
    sinceclose = models.CharField(max_length=100, default='')
    sinceopen = models.CharField(max_length=100, default='')
    isin = models.CharField(max_length=100, default='')
    place = models.CharField(max_length=100, default='')

在我的模板中

<div>
        <table class="table">
          <thead class="bg-dark">
            <tr>
              <th class="text-light">Name</th>
              <th class="text-light">Last Price</th>
              <th class="text-light">Change since Close</th>
              <th class="text-light">Change since Open</th>
              <th class="text-light">Isin</th>
            </tr>
          </thead>

            <tbody>

            {% for item in mydata %}
                <tr>
                    <td class="text-primary"> {{item.name}} </td>
                    <td class="text-dark"> {{ item.lastprice }} </td>
                    <td class="text-dark"> {{ item.sinceclose }} </td>
                    <td class="text-dark"> {{ item.sinceopen }} </td>
                    <td class="text-dark"> {{ item.isin }} </td>
                </tr>
            {% endfor %}

            </tbody>

        </table>
    </div>

在我的urls.py

urlpatterns = [
    path('', lambda request: redirect('accounts/login/', permanent=False)),
    path('admin/', admin.site.urls),
    path('accounts/', include('django.contrib.auth.urls')),
    #path('blog/', financial_data_render),
    path('blog/', TemplateView.as_view(template_name='home.html'), name='home'), # If the login is right, it's redirecting to home.html
    path('blog', views.DataItem),
    path('blog/add-isin/', views.add_row),
    path('blog/add-place/', views.add_row),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) # for the static files

我想要的是,当我打开网站时,将显示保存的数据。

非常感谢您的帮助^^

4 个答案:

答案 0 :(得分:0)

网址不一样。但是您的博客/和博客。

path('blog/', TemplateView.as_view(template_name='home.html'), name='home'), # If the login is right, it's redirecting to home.html
path('blog', views.DataItem),

答案 1 :(得分:0)

您没有DataItem视图,这就是问题所在。我认为您打算这样做:

path('blog', views.my_financial_data),

答案 2 :(得分:0)

通过这样设置urls.py和views.py

# urls.py

urlpatterns = [
...
path('blog/', my_financial_data),
...

]

# views.py

def my_financial_data(request):
    mydata = DataItem.objects.all()
    print("My financial data : ",  mydata)
    return render(request, 'home.html', {'mydata': mydata})

在控制台中检查mydata是否有任何价值

答案 3 :(得分:0)

好吧,我找到了,谢谢你们

就像您告诉我的那样,这是url博客,我的html中出现了{%url''%}的错误,因此我必须清除所有这些错误,再次非常感谢,我不会犯同样的错误!