Skip to main content
Help us improve Python packaging – donate today!

A application to position objects anywhere on a page.

Project Description

BUILD

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.

Before:

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

New:

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

Installation

Using PIP:

pip install django-kamasutra

or download the app here

python setup.py install

Add positions to your settings INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'positions',
    ...
)

Add positions to your URLS:

import positions.urls

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

Run syncdb:

>>> ./manage.py 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)

Note

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/>
<ul>
{% for obj in content %}
    <li>{{ obj }}</li>
{% endfor %}
</ul>

Note

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 %}

Release history Release notifications

History Node

0.2.11

History Node

0.2.8

This version
History Node

0.2.7

History Node

0.2.5

History Node

0.2.4

History Node

0.2.2

History Node

0.1.14

History Node

0.1.13

History Node

0.1.12

History Node

0.1.11

History Node

0.1.10

History Node

0.1.9

History Node

0.1.8

History Node

0.1.7

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
django-kamasutra-0.2.7.tar.gz (532.5 kB) Copy SHA256 hash SHA256 Source None Oct 15, 2012

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page