我正在尝试显示mysql数据库中的数据。我已经使用django admin将数据上传到数据库: enter image description here
这是我的模型。py:
from django.db import models
# Create your models here.
class Newsform(models.Model):
headline = models.CharField(max_length=50)
description = models.CharField(max_length=100, default='')
content = models.CharField(max_length=100, default='')
image = models.ImageField(upload_to='news_image', blank=True)
views.py:
from django.shortcuts import render
from blog.models import Newsform
def first(request):
return render(request, 'blog/index.html')
def show_content_from_database(request):
headline_news=Newsform.objects.all()
context = {
'headline_news': headline_news
}
return render(request, 'blog/index.html', context)
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ headline_news.headline }}</h1>
<img src="{{ headline_news.image }}">
</body>
</html>
结果是我的页面空白。怎么了?
答案 0 :(得分:1)
headline_news
是一个查询集,即数据库中所有Newsform项目的列表。 queryset本身没有标题或图像,只有其中的单个项目才有。因此,您需要遍历它:
<body>
{% for headline in headline_news %}
<h1>{{ headline.headline }}</h1>
<img src="{{ headline.image.url }}">
{% endfor %}
</body>
还要注意,正如我上面显示的那样,您需要在ImageField上显式使用.url
属性来获取src的值。
答案 1 :(得分:0)
属性url
搜索默认情况下在media
内部上载的图像,您可以使用{{ headline.image.url }}
调用它