Django 随机帖子未显示在 base.html 上

问题描述 投票:0回答:1

我正在尝试让广告显示在我网站的侧边栏上(在 base.html 中)。但是广告没有显示。

我使用的代码是:

views.py

from django.shortcuts import render, redirect
from django.http import HttpResponse
from .models import *
import random

def base(request):
    allSideAds=SideBarAd.objects.all()
    random_sideAd = random.choice(allSideAds) if allSideAds else None
    return render(request, 'base.html', {'random_sideAd': random_sideAd})

模型.py

from django.contrib import admin
from django.db import models
from django.urls import reverse

class SideBarAd(models.Model):
    AdImage = models.ImageField(help_text='Enter Image Here')
    AdLink = models.URLField()
    MaxAdViews = models.PositiveBigIntegerField()
    AdViews = models.PositiveBigIntegerField()
    Approved = models.BooleanField()
    
    def get_absolute_url(self):
        return self.AdImage

base.html

        {% if random_sideAd %}
            <a href="{{ random_sideAd.AdLink }}">
                <img src="{{ random_sideAd.AdImage.url }}" alt="Ad Image">
            </a>
        {% endif %}

当我加载页面时,数据库中的广告不会通过 base.html 显示。

django django-models django-views django-templates
1个回答
0
投票

尝试打印 allSideAds 以确保它存在,如果您确定已导入 SideBarAd 并且存在对象,请尝试

allSideAds= list(SideBarAd.objects.all())
random_sideAd = random.choice(allSideAds)
© www.soinside.com 2019 - 2024. All rights reserved.