馈送无噪音。
django_filtered_feed的Python项目详细描述
所以一般的joe rss都是二进制的,要么你订阅了一个feed,要么你没有订阅。这种方法会在我们的收件箱中产生大量垃圾。如果我们可以订阅define我们想要订阅的feed怎么办?多亏了那颗恒星django syndication framework和django filters,我才得以拼凑出一个解决方案。
如果您有这样的Book模型:
class Book(models.Model): name = models.CharField(max_length=256) pages = models.IntegerField() def __unicode__(self): return self.name
像这样:
class BookFilterSet(django_filters.FilterSet): pages = django_filters.NumberFilter(lookup_type='lt') class Meta: model = Book fields = ['pages']
像这样的FilteredFeed类:
class BookFilteredFeed(BaseFilteredFeed): model = Book filter_set = BookFilterSet title = "BookFeed" link = "http://localhost:8000" description = "Get alerts for new books - less than given number of pages!" def item_link(self, item): return reverse('book_detail', args=[item.id])
连接必要的url,如so:
urlpatterns = patterns('', url(r'^books/feed$', BookFilteredFeed.as_view(), name='book_feed'), )
最后,如果数据库中有以下3本书:
- python简介(100页)
- C简介(300页)
- javascript-好的部分(300页)
点击http://localhost:8000/books/feed将为您提供一个rss提要,其中包括:
- python简介
- C简介
- javascript-好的部分
点击http://localhost:8000/books/feed?pages=200将提供一个rss提要,其中包括:
- python简介
您的用户将永远感激您为他们省去了二进制订阅带来的浩劫。你将被誉为联合之王,被尊为摇滚明星,从此过上幸福的生活。最好的部分是,开始需要一分钟:
pip install django_filtered_feed
接下来当然要在安装的应用程序中包含过滤的feed。
INSTALLED_APPS = ( ... 'filtered_feed', ... )
历史记录
0.1.0(2014-08-18)
- pypi上的第一个版本。