Files
shopship/apps/landing/views.py
T
2026-08-31 15:11:52 +03:30

24 lines
1.1 KiB
Python

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})