【发布时间】:2020-08-16 19:57:01
【问题描述】:
我是 Django 新手,如果这个很愚蠢,我深表歉意。我有一个 Django 模板,其中包含三个图像位置,我试图让管理员用户选择数据库中的哪个图像应该放在哪个位置(左、中或右)。不过,
我的模型如下所示:
from django.db import models
from django.urls import reverse
from django.utils.text import slugify
class Artwork(models.Model):
art = models.ImageField(upload_to='artworks/%Y')
title = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True)
date = models.DateField(auto_now_add=True)
herochoices = [('left', 'left'), ('middle', 'middle'), ('right', 'right')]
hero = models.CharField(choices=herochoices, max_length=6, unique=True, null=True, blank=True, error_messages={'unique':'Another artwork already uses this hero position.'})
slug = slugify(title, allow_unicode=False)
def get_absolute_urls(self):
return reverse('artwork_list', kwargs={'slug': self.slug})
我的模板如下所示:
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row">
{% for artwork in object_list %}
{% if artwork.hero == 'left' %}
<div class="col-sm p-3 align-items-center">
<img class="img-fluid rounded" src="{{ artwork.art.url }}" />
<p>{{ artwork.hero }}</p> <!--for testing-->
</div>
{% elif artwork.hero == 'middle' %}
<div class="col-sm p-3 align-items-center">
<img class="img-fluid rounded" src="{{ artwork.art.url }}" />
<p>{{ artwork.hero }}</p> <!--for testing-->
</div>
{% elif artwork.hero == 'right' %}
<div class="col-sm p-3 align-items-center">
<img class="img-fluid rounded" src="{{ artwork.art.url }}" />
<p>{{ artwork.hero }}</p> <!--for testing-->
</div>
{% endif %}
{% endfor %}
</div>
</div>
{% endblock content %}
由于某种原因,图像的显示顺序错误:
我一直在看这个,非常感谢任何帮助!
【问题讨论】:
-
提示,它们按照您从数据库中提取它们的确切顺序显示。
标签: python django django-models django-template-filters