نکتههای جنگویی - بفرمایید فید
مطلب جدید نکتههای جنگویی، ساختن RSS هست. اینکه RSS چی هست رو تو ویکیپدیا بخونید. و اما چرا خوبه؟ چون مردم میتونن (امروزه کمتر) لینک RSS شما رو توسط نرمافزارهای RSS بگیرن و مطالب جدید شما رو دریافت کنن. گرچه بعضیها مثل زومجی و ... میان خلاصهای از مطلب رو میذارن که مردم برن مطلب کامل رو از وبسایتشون بخونن. خلاصه هر چی که هست چیز خوبیه :)).
پروژهی داستان رو باز میکنم و در stories/feeds.py رو میسازم:
stories ├── admin.py ├── apps.py ├── feeds.py ├── forms.py ├── __init__.py ├── models.py ├── tasks.py ├── templates │ └── stories │ ├── add.html │ ├── detail.html │ └── index.html ├── tests.py ├── urls.py └── views.py
کدهایی که داخل feeds.py قرار میدم:
from django.contrib.syndication.views import Feed from django.template.defaultfilters import truncatewords, safe from .models import Story class LatestStoriesFeed(Feed): title = 'Read Stories' link = '' description = 'Read the short and good story' def items(self): return Story.objects.filter(status=True)[:30] def item_title(self, item): return item.title def item_description(self, item): return safe(truncatewords(item.body, 20)) def item_link(self, item): return f'/{item.slug}/'
۳۰ داستان آخر که از هر کدوم ۲۰ کلمه رو نشون میدم و لینک مطلب رو هم میذاریم که بیان بقیهی مطلب رو تو صفحهی خود داستان ببینن.
و در نهایت یه URL براش درست میکنم (در stories/urls.py). البته اگه داخل A/urls.py هم باشه فرقی نمیکنه (تازه بهترم هست فکر میکنم). کلاس LatestStoriesFeed رو به urlها اضافه میکنم:
... from .feeds import LatestStoriesFeed ...
و یک path براش درست میکنم:
urlpatterns = [ ... # feeds path('feed/rss', LatestStoriesFeed(), name='stories_feed'), ]
و حالا اگه به مسیر:
http://localhost:8000/feed/rss
برم؛ آخرین داستانها رو میبینم که مشخص کردیم ۳۰ تا باشه.
خیلی ساده و سریع RSS ساختیم و به کاربرها تعارف میکنیم که بفرمایید RSS :).
پایان./