Me está costando encontrar una solución sobre cómo programar publicaciones para el carrusel de arranque con datos dinámicos en django.
Ejemplo:
Creé una publicación para el 1 de enero y el 30 de enero si hoy es 1 de febrero, la publicación no debería estar visible en el carrusel y viceversa.
Modelos.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'Vistas.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)Modelo
<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>parece que desea mostrar los objetos Carrusel cuando están activos entre fecha_inicio y fecha_fin. bueno, necesitas filtrar tus objetos. puede filtrarlos en su vista o crear un administrador para su modelo.
en tus views.py :
car = Carousel.objects.all().filter(date_start__lte=datetime.now(), date_end__gte=datetime.now())o usa un administrador:
class CarouselManager(models.Manager): def get_active(self): return super(CarouselManager, self).all().filter(date_start__lte=datetime.now(), date_end__gte=datetime.now())