Html Django用于post渲染的多个图像

Html Django用于post渲染的多个图像,html,django,django-models,rendering,Html,Django,Django Models,Rendering,在过去的几天里,我一直在尝试让管理员用户为每一篇文章上传多张图片/幻灯片,我想到的一个想法是在文章的For循环中嵌套一个For循环,对于每一篇文章,也渲染与之相关的每一张图片,但似乎我做得不太对 class Post(models.Model): title = models.CharField(max_length = 128) image = models.ImageField(default = 'default.jpg', upload_to = 'post_pics')

在过去的几天里,我一直在尝试让管理员用户为每一篇文章上传多张图片/幻灯片,我想到的一个想法是在文章的For循环中嵌套一个For循环,对于每一篇文章,也渲染与之相关的每一张图片,但似乎我做得不太对

class Post(models.Model):
    title = models.CharField(max_length = 128)
    image = models.ImageField(default = 'default.jpg', upload_to = 'post_pics')
    content = models.TextField()
    date_posted = models.DateTimeField(default = timezone.now)
    category = models.ForeignKey(Category, on_delete = models.CASCADE)

def __str__(self):
    return f"{self.title} - {self.category}"


def get_image_filename(instance, filename):
    title = instance.post.title 
    slug = slugify(title)
    return "post_images/%s-%s" % (slug, filename)



class Images(models.Model):
    post = models.ForeignKey(Post, default= None, on_delete = models.CASCADE, related_name= 'Images')
    image  = models.ImageField( upload_to = get_image_filename, verbose_name = 'Images')

def __str__(self):
    return f"imazh per {self.post}"
和我的Html:


{posts%%中的post为%s}
{{post.content}}

{{发布日期{发布日期:“F d,Y”} {%endfor%}
A
Post
将有一个相关的集合,您称之为反向关系

默认情况下,django将在
Post
实例
images\u集
上建立关系,因为它在关系上采用您的模型名称并添加
\u集

您还可以通过在FK字段上设置
related_name
属性来选择自己的相关名称。()

这里有一个例子

类映射(models.Model):
members=models.ManyToManyField(
用户,
相关的_name='maps',
详细名称=(成员)
)
#反向关系:
User.maps.all()
或者在python中使用您的模型

post=post.objects.first()
打印(f“post{post.title}中的图像”)
对于post.images\u set.all()中的图像:
打印(image.url)
因此,如果没有自定义的
相关的\u名称
,您的模板循环将类似于

        {% for image in post.images_set.all %}
            <img src="{{ image.url }}">
        {% empty %}
            <p>No images found</p>
        {% endfor %}
{%用于post.images\u set.all%}
{%empty%}
没有找到图像

{%endfor%}
谢谢您的帮助,非常感谢。