class GetCategoriesNode(BlogAssignmentOrInclusionNode): """ Query the entries in the database, and render them. This template tag supports the following syntax: .. code-block:: html+django {% get_categories as categories %} {% for category in categories %}...{% endfor %} The allowed query parameters are: * ``order``: Which field to order on, this can be: * ``slug``: The URL name of the entry. * ``name``: The category name. * ``orderby``: can be ASC/ascending or DESC/descending. The default depends on the ``order`` field. * ``limit``: The maximum number of entries to return. """ template_name = "fluent_blogs/templatetags/entries.html" context_value_name = 'entries' allowed_kwargs = ( 'orderby', 'order', 'limit', ) model = get_category_model() def get_value(self, context, *tag_args, **tag_kwargs): only_ids = GetEntriesNode.model.objects.published().values( 'categories').order_by().distinct() qs = self.model.objects.filter(id__in=only_ids) return qs
def get_queryset(self): self.category = get_object_or_404(get_category_model(), slug=self.kwargs['slug']) return super(EntryCategoryArchive, self).get_queryset().filter(categories=self.category)
from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.contrib.sitemaps import Sitemap from fluent_blogs.models import get_entry_model, get_category_model from fluent_blogs.urlresolvers import blog_reverse from fluent_utils.django_compat import get_user_model from parler.models import TranslatableModel User = get_user_model() EntryModel = get_entry_model() CategoryModel = get_category_model() class EntrySitemap(Sitemap): """ The sitemap definition for the pages created with django-fluent-blogs. """ def items(self): qs = EntryModel.objects.published().order_by('-publication_date') if issubclass(EntryModel, TranslatableModel): # Note that .active_translations() can't be combined with other filters for translations__.. fields. qs = qs.active_translations() return qs.order_by('-publication_date', 'translations__language_code') else: return qs.order_by('-publication_date') def lastmod(self, urlnode): """Return the last modification of the entry.""" return urlnode.modification_date