skip to navigation
skip to content

django-kamasutra 0.2.11

A application to position objects anywhere on a page.

Backwards incompatible changes made in version 0.2.2

COMBINE_STRING is now used to build the template list when using PositionContent.render or render_content template tag.




/positions/my_position/<app> <combine_string> <model>.html


Using PIP:

pip install django-kamasutra

or download the app here

python install

Add positions to your settings INSTALLED_APPS:


Add positions to your URLS:

import positions.urls

urlpatterns += patterns('',
    url(r'^positions/', include(positions.urls)),

Run syncdb:

>>> ./ syncdb

Getting Started

Creating your first position

The minimum required arguments to create a positions is a name, which is a SlugField.

from positions.models import Position

position = Position.objects.create(name="MyPosition")

Add something to your Position

The position manager has a add_object method that takes, at minimum, 2 arguments, position and obj

  • position should be a positions.Position instance
  • obj can be any model instance
from myapp.models import MyApp

obj = MyApp.objects.get_latest()

Position.objects.add_object(position=position, obj=obj)


The Position model can define which types of objects that can be added. Therefore when adding objects to a position, make sure the content types is allowed by the Position instance.

Retrieve your position content

The position manager has a get_content method that takes at least 1 argument, position.

  • position should be a positions.Position instance
position = Position.objects.get(name="MyPosition")

content = Position.objects.get_content(position=position)

Retrieve your position content via templatetag

{% get_position_content position as content %}

get_position_content expects [position] [as] [varname]

  • position can be a positions.Position instance or a name of a position
Position {{ position }} has the following content:<br/>
{% for obj in content %}
    <li>{{ obj }}</li>
{% endfor %}


By default the object instance will be returned, although returning the positions.PositionContent instance, which holds the generic relation between position and the object, is also possible

{% get_position_content position as content as_content_type=False %}
File Type Py Version Uploaded on Size
django-kamasutra-0.2.11.tar.gz (md5) Source 2013-11-28 521KB