{"id":47875335,"url":"https://github.com/callowayproject/django-kamasutra","last_synced_at":"2026-04-04T01:11:58.442Z","repository":{"id":1021296,"uuid":"849074","full_name":"callowayproject/django-kamasutra","owner":"callowayproject","description":"A application to position objects anywhere on a page.","archived":false,"fork":false,"pushed_at":"2015-05-18T23:14:21.000Z","size":715,"stargazers_count":22,"open_issues_count":1,"forks_count":3,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-08-08T15:18:22.213Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/callowayproject.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-08-19T15:50:58.000Z","updated_at":"2019-08-13T14:35:57.000Z","dependencies_parsed_at":"2022-07-06T02:02:04.173Z","dependency_job_id":null,"html_url":"https://github.com/callowayproject/django-kamasutra","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/callowayproject/django-kamasutra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-kamasutra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-kamasutra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-kamasutra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-kamasutra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/callowayproject","download_url":"https://codeload.github.com/callowayproject/django-kamasutra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/callowayproject%2Fdjango-kamasutra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31383791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T23:20:52.058Z","status":"ssl_error","status_checked_at":"2026-04-03T23:20:51.675Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-04T01:11:56.302Z","updated_at":"2026-04-04T01:11:58.418Z","avatar_url":"https://github.com/callowayproject.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"|BUILD|_\n\n.. |BUILD| image::\n   https://secure.travis-ci.org/callowayproject/django-kamasutra.png?branch=master\n.. _BUILD: http://travis-ci.org/#!/callowayproject/django-kamasutra\n\n\nBackwards incompatible changes made in version 0.2.2\n====================================================\n\n**COMBINE_STRING** is now used to build the template list when using\n``PositionContent.render`` or ``render_content`` template tag.\n\nBefore:\n\n/positions/my_position/\u003capp\u003e__\u003cmodel\u003e.html\n\nNew:\n\n/positions/my_position/\u003capp\u003e **\u003ccombine_string\u003e** \u003cmodel\u003e.html\n\n\nInstallation\n============\n\nUsing PIP::\n\n\tpip install django-kamasutra\n\nor download the app `here \u003chttp://pypi.python.org/pypi/django-kamasutra/\u003e`_ ::\n\n\tpython setup.py install\n\n\nAdd **positions** to your settings **INSTALLED_APPS**::\n\n    INSTALLED_APPS = (\n        ...\n        'positions',\n        ...\n    )\n\nAdd **positions** to your URLS::\n\n    import positions.urls\n\n    urlpatterns += patterns('',\n        url(r'^positions/', include(positions.urls)),\n    )\n\nRun syncdb::\n\n    \u003e\u003e\u003e ./manage.py syncdb\n\n\nGetting Started\n===============\n\nCreating your first position\n----------------------------\n\nThe minimum required arguments to create a positions is a `name`, which is a `SlugField`.\n\n::\n\n    from positions.models import Position\n\n    position = Position.objects.create(name=\"MyPosition\")\n\n\nAdd something to your Position\n------------------------------\n\nThe position manager has a `add_object` method that takes, at minimum, 2 arguments, `position` and `obj`\n\n* **position** should be a `positions.Position` instance\n* **obj** can be any model instance\n\n::\n\n    from myapp.models import MyApp\n\n    obj = MyApp.objects.get_latest()\n\n    Position.objects.add_object(position=position, obj=obj)\n\n\n.. note::\n\n    The `Position` model can define which types of objects that can be added.\n    Therefore when adding objects to a position, make sure the content types\n    is allowed by the `Position` instance.\n\nRetrieve your position content\n------------------------------\n\nThe position manager has a `get_content` method that takes at least 1 argument, `position`.\n\n* **position** should be a `positions.Position` instance\n\n::\n\n    position = Position.objects.get(name=\"MyPosition\")\n\n    content = Position.objects.get_content(position=position)\n\n\nRetrieve your position content via templatetag\n----------------------------------------------\n\n::\n\n    {% get_position_content position as content %}\n\n`get_position_content` expects [position] [as] [varname]\n\n* **position** can be a positions.Position instance or a name of a position\n\n\n::\n\n    Position {{ position }} has the following content:\u003cbr/\u003e\n    \u003cul\u003e\n    {% for obj in content %}\n        \u003cli\u003e{{ obj }}\u003c/li\u003e\n    {% endfor %}\n    \u003c/ul\u003e\n\n.. note::\n\n    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\n\n    ::\n\n        {% get_position_content position as content as_content_type=False %}\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallowayproject%2Fdjango-kamasutra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcallowayproject%2Fdjango-kamasutra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcallowayproject%2Fdjango-kamasutra/lists"}