我正在使用Django创建我的博客。我想在帖子之间添加图片。为此,我在一个模型中使用5个图像字段。
我尝试在文章的内容中添加<img src=" {{article.img1.url}} "</img>
,但在我撰写的文章之间却没有显示图像。
这是我的模板代码,
models.py
class article_by_author(models.Model):
author_name = models.CharField(max_length=200, default='xxxx')
article_title = models.CharField(max_length=200, default='')
article_content = models.TextField(max_length=999999, default='')
article_date = models.DateTimeField(auto_now_add=True)
article_category = models.CharField(max_length=200, default='')
article_priority = models.IntegerField()
article_category_priority = models.IntegerField()
article_views = models.IntegerField(default=0)
author_img = models.ImageField(blank=True, upload_to='images/')
article_img = models.ImageField(blank=False, upload_to='article_img/')
img1 = models.ImageField(blank=True, upload_to='article_img/')
img2 = models.ImageField(blank=True, upload_to='article_img/')
img3 = models.ImageField(blank=True, upload_to='article_img/')
img4 = models.ImageField(blank=True, upload_to='article_img/')
img5 = models.ImageField(blank=True, upload_to='article_img/')
这是我的模板
{% for article in full_article %}
<div id="post-header" class="page-header">
<div class="background-img" style="background-image: url('{{article.article_img.url }}');"></div>
<div class="container">
<div class="row">
<div class="col-md-10">
<div class="post-meta">
<a class="post-category cat-2" href="../../../preview/theme/webmag/category.html">{{article.article_category}}</a>
<span class="post-date">{{article.article_date|stringformat:".10s"}}</span>
</div>
<h1>{{article.article_title}}</h1>
</div>
</div>
</div>
</div>
<div class="main-post">
{{article.article_content|safe}}
</div>
{% endfor %}
这是我的观点。py
full_article = article_by_author.objects.filter(article_title=article_title)
context = {
'full_article':full_article,
}
要添加内容,我还有另一个页面,其中添加了所有文章内容。现在我的问题是如何在我写的文章文本之间调用图像(img1,img2,..)。
如果还有其他方法可以这样做,请提出建议。
答案 0 :(得分:0)
您可以这样做来显示图像
<img src="{{ article.img1.url }}">
尽管您应该拥有比硬编码数量的图像更好的模型,因为如果仅上传1张图像,则img2.url会引发错误。或者,您可以使用if语句检查图像是否存在,然后再显示它
{% if article.img2 %}
<img src="{{ article.img2.url }}">
{% endif %}
因此,根据您当前的模型结构,这是您最好的选择:
{% if article.img1 %}
<img src="{{ article.img1.url }}">
{% endif %}
{% if article.img2 %}
<img src="{{ article.img2.url }}">
{% endif %}
{% if article.img3 %}
<img src="{{ article.img3.url }}">
{% endif %}
{% if article.img4 %}
<img src="{{ article.img4.url }}">
{% endif %}
{% if article.img5 %}
<img src="{{ article.img5.url }}">
{% endif %}
答案 1 :(得分:0)
我建议您更新模型并遵循pep8标准。多对一关系通常是通过为多个对象创建一个单独的模型来处理的,并且在该模型中,使用外键指向“一个”。
class PostPicture(models.Model):
picture = models.ImageField(related_name='images',upload_to='blog/post_pics', blank=True)
postid = models.ForeignKey('Post')
class Post(models.Model):
title = models.CharField(max_length=255)
content = models.TextField()
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
userid = models.ForeignKey(User, related_name='userblogpost')
PostPicture = None