在2种不同的Django模型中使用图像

时间:2019-02-28 05:23:46

标签: django django-models django-templates

我有一个零售网站,销售多个品牌。每个品牌在其自己的页面上都有其徽标。徽标图像具有其自身的模型。

如何在索引页上为不同的型号使用相同的徽标?我想在边栏中突出显示一些商店优惠券时使用相同的徽标。

当前,我在IMG模型中有一个到商店的外键。

当前代码:

models.py

class Logo(models.Model):
     store = models.ForeignKey(Store, on_delete=models.CASCADE, 
     related_name="storelogo")
     image = models.ImageField(upload_to=get_image_path)

views.py

def show_store(request, slug):
    store = Store.objects.get(slug=slug)
    uploads = store.storelogo.all()

    return render(request, 'store.html', {
            'store': store,
            'products': products,
            'coupons': coupons,
            'uploads': uploads,
        })

HTML

<div class="store-logo">
    {% for logo in store.storelogo.all %}
        <img src="{{ logo.image.url }}">
    {% endfor %}
</div>

徽标在商店页面上显示得很好,但是我无法在索引页面的For循环中显示它。有可能吗?

我可以添加另一个图像模型,并为优惠券添加完全相同的徽标图像,但这似乎完全违背了DRY原则。我可以在索引页面上使用模板标签吗?还是最好创建另一个模型?

让我知道是否遗漏了任何内容。谢谢!

0 个答案:

没有答案