django-o2o_tagging

Use this app to tag objects like you tag your friends on facebook, but using any objects as the tagger and the tagged. Think of a `User` tagging a `Friend` in a `Photo` all of them being different models.


Keywords
django, python, tagging
License
GPL-3.0
Install
pip install django-o2o_tagging==0.2.3

Documentation

o2o_tagging

Build Status

Welcome to the documentation for django-o2o_tagging! Use this app to tag objects like you tag your friends on facebook, but using any objects as the tagger, the tagged and the tagged in. Think of a User tagging a Friend in a Photo all of them being different models.

Quick start

  1. Install using pip:

    pip install django-o2o_tagging
    
  2. Add o2o_tagging to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = (
        ...
        'o2o_tagging',
    )
    

Usage

  1. Models

    Tag your objects:

    ...
    tag = O2OTag.objects.tag(tagger, tagged, tagged_in)
    

    Get for tagged in objects:

    ...
    tags = O2OTag.objects.for_tagged_in(tagged_in)
    

    Get for tagger objects:

    ...
    tags = O2OTag.objects.for_tagger(tagger)
    

    Get for tagged objects:

    ...
    tags = O2OTag.objects.for_tagged(tagged)
    

    You can then filter:

    ...
    tags.for_tagger(tagger).for_tagged(tagged)
    
  2. URLs

    You can add this views to your urls:

    ...
    ('^tagging/$', include('o2o_tagging')),
    
  3. Views

    o2o_taggin provides two views:

    TagCreateView
    
    TagsCreateView
    
  4. Templates

    There are two templatetags available

    1. for_tagged_in:

      {% for_tagged_in object as tags %}
      
    2. for_tagged_in_nodups:

      {% for_tagged_in_nodups object as tags %}
      

    Apply distinct on tagged_object_id in order to get only one tagged user.

Running the Tests

You can run the tests with via:

python setup.py test