如何使用 django 在模板中安排轮播帖子?
How to schedule posts for carousel in templates using django?
我很难想出如何在 django 中为 bootstrap 轮播安排 posts 与动态数据的解决方案。
示例:
我为 1 月 1 日至 1 月 30 日创建了一个 post 如果今天是 2 月 1 日,则 post 不应在轮播中可见,反之亦然。
Models.py
class Carousel(models.Model):
above_text = models.CharField(max_length=200, null=True)
below_text = models.CharField(max_length=200, null=True)
image = models.ImageField(upload_to='static/website/images/profile-images', null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
date_start = models.DateTimeField(null=True)
date_end = models.DateTimeField(null=True)
class Meta:
verbose_name_plural = 'Carousel'
def __str__(self):
return f'{self.above_text} Carousel'
Views.py
def index(request):
car = Carousel.objects.all()
faq = FAQ.objects.all()
team = Team.objects.all()
about = About.objects.all()
context = {
'car' : car,
'faq' : faq,
'team': team,
'about' : about,
}
template_name = 'main/index.html'
return render(request, template_name, context)
模板
<div class="carousel-inner">
{% for car in car %}
<div class="carousel-item {% if forloop.counter0 == 0%} active {% endif %}" data-interval="2">
<div class="img-caro">
<img src="{{car.image}}" class="img-responsive">
</div>
<div class="container">
<h1>{{car.above_text}}</h1>
<p>{{car.below_text}}</p>
</div>
</div>
{% endfor %}
</div>
您似乎想在 date_start 和 date_end 之间显示处于活动状态的 Carousel 对象。好吧,你需要过滤你的对象。您可以在您的视图中过滤它们或为您的模型创建一个管理器。
在你的 views.py
:
car = Carousel.objects.all().filter(date_start__lte=datetime.now(), date_end__gte=datetime.now())
或使用经理:
class CarouselManager(models.Manager):
def get_active(self):
return super(CarouselManager, self).all().filter(date_start__lte=datetime.now(), date_end__gte=datetime.now())
我很难想出如何在 django 中为 bootstrap 轮播安排 posts 与动态数据的解决方案。
示例:
我为 1 月 1 日至 1 月 30 日创建了一个 post 如果今天是 2 月 1 日,则 post 不应在轮播中可见,反之亦然。
Models.py
class Carousel(models.Model):
above_text = models.CharField(max_length=200, null=True)
below_text = models.CharField(max_length=200, null=True)
image = models.ImageField(upload_to='static/website/images/profile-images', null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
date_start = models.DateTimeField(null=True)
date_end = models.DateTimeField(null=True)
class Meta:
verbose_name_plural = 'Carousel'
def __str__(self):
return f'{self.above_text} Carousel'
Views.py
def index(request):
car = Carousel.objects.all()
faq = FAQ.objects.all()
team = Team.objects.all()
about = About.objects.all()
context = {
'car' : car,
'faq' : faq,
'team': team,
'about' : about,
}
template_name = 'main/index.html'
return render(request, template_name, context)
模板
<div class="carousel-inner">
{% for car in car %}
<div class="carousel-item {% if forloop.counter0 == 0%} active {% endif %}" data-interval="2">
<div class="img-caro">
<img src="{{car.image}}" class="img-responsive">
</div>
<div class="container">
<h1>{{car.above_text}}</h1>
<p>{{car.below_text}}</p>
</div>
</div>
{% endfor %}
</div>
您似乎想在 date_start 和 date_end 之间显示处于活动状态的 Carousel 对象。好吧,你需要过滤你的对象。您可以在您的视图中过滤它们或为您的模型创建一个管理器。
在你的 views.py
:
car = Carousel.objects.all().filter(date_start__lte=datetime.now(), date_end__gte=datetime.now())
或使用经理:
class CarouselManager(models.Manager):
def get_active(self):
return super(CarouselManager, self).all().filter(date_start__lte=datetime.now(), date_end__gte=datetime.now())