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
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
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")
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.
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)
{% 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 %}