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
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 = 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 {{ 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 %}
Read more about Template Tags