from django.shortcuts import get_object_or_404, render from django.utils import timezone from .models import Article def _visible_articles(): # published_at یعنی «از این تاریخ به بعد دیده شود» — نه فقط یک برچسبِ # نمایشی. همین باعث می‌شود بشود چند مقاله را از قبل با is_published=True # و published_at آینده ثبت کرد و هرکدام سرِ تاریخِ خودش خودکار ظاهر شود # (مثلا برای انتشار پلکانیِ هر چند روز یک‌بار، بدون نیاز به کرون/تسک جدا). return Article.objects.filter(is_published=True, published_at__lte=timezone.localdate()) def article_list(request): articles = _visible_articles() return render(request, "landing/article_list.html", {"articles": articles}) def article_detail(request, slug): article = get_object_or_404(_visible_articles(), slug=slug) related = _visible_articles().exclude(pk=article.pk)[:3] return render(request, "landing/article_detail.html", {"article": article, "related": related})