我是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
我想要的是,当我打开网站时,将显示保存的数据。
非常感谢您的帮助^^
答案 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''%}的错误,因此我必须清除所有这些错误,再次非常感谢,我不会犯同样的错误!