Skip to main content

Django reusable application for content categorization.

Project description

https://github.com/idlesign/django-sitecats

https://img.shields.io/pypi/v/django-sitecats.svg https://img.shields.io/pypi/l/django-sitecats.svg https://img.shields.io/coveralls/idlesign/django-sitecats/master.svg https://img.shields.io/travis/idlesign/django-sitecats/master.svg https://landscape.io/github/idlesign/django-sitecats/master/landscape.svg?style=flat

Description

Django reusable application for content categorization.

Nay, - you say, - all that tags business lacks structuring.

This application is just about structuring your data: build categories hierarchy and link your site entities to those categories.

# Somewhere in views.py
from django.shortcuts import render, get_object_or_404

# Suppose Article model has sitecats.models.ModelWithCategory class mixed in.
from .models import Article


def article_details(self, request, article_id):
    """See, there is nothing special in this view, yet it'll render a page with categories for the article."""
    return self.render(request, 'article.html', {'article': get_object_or_404(Article, pk=article_id)})

def article_edit(self, request, article_id):
    """Let's allow this view to render and handle categories editor."""
    article = get_object_or_404(Article, pk=article_id)

    # Now we enable category editor for an article, and allow users
    # to add subcategories to `language`, and `os` categories
    # (suppose we created them beforehand with Admin contrib),
    # and link this article to them.
    article.enable_category_lists_editor(
        request,
        editor_init_kwargs={'allow_new': True},
        additional_parents_aliases=['language', 'os']
    )

    form = ... # Your usual Article edit handling code will be here.

    return render(request, 'article.html', {'article': article, 'form': form})

Template coding basically boils down to sitecats_categories template tags usage:

<!-- The same html is just fine for demonstration purposes for both our views.
     Do not forget to load `sitecats` template tags library. -->
{% extends "base.html" %}
{% load sitecats %}

{% block contents %}
    <!-- Some additional functionality (e.g. categories cloud rendering,
         editor enhancements) will require JS. -->
    <script src="{{ STATIC_URL }}js/sitecats/sitecats.min.js"></script>

    <h1>{{ article.title }}</h1>
    <div id="article_categories">
        {% sitecats_categories from article %} <!-- And that's it. -->
    </div>
    <!-- Form code goes somewhere here. -->
{% endblock %}

Read the docs, sitecats can do more.

Documentation

http://django-sitecats.readthedocs.org/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-sitecats-0.7.0.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

django_sitecats-0.7.0-py2.py3-none-any.whl (37.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django-sitecats-0.7.0.tar.gz.

File metadata

File hashes

Hashes for django-sitecats-0.7.0.tar.gz
Algorithm Hash digest
SHA256 47751f3bbf4b5b631ba0c4d219743955396886cd53538ec46e4fa686818b8145
MD5 3f65819f78ebbc2bcab8547364e4a1ad
BLAKE2b-256 ad3882abd78d3cf3ee9de3ebd246f41bf9024b2d8b69a32a2bc65593df291160

See more details on using hashes here.

File details

Details for the file django_sitecats-0.7.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_sitecats-0.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 26ca6d0d8b622871358df21026514e3ab8e2c901b91b3a1fb782b64edc63651d
MD5 7b61835e6dddd399c1fa20accbbb6499
BLAKE2b-256 39edb5478180d3b933909bd29bf9284e516c16f947cc75588874dc13ab6a0adc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page