{ "info": { "author": "Tivix", "author_email": "dev@tivix.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Operating System :: OS Independent", "Topic :: Software Development" ], "description": "=====================\ndjango-common-helpers\n=====================\n\n\nOverview\n---------\n\nDjango-common consists of the following things:\n\n\t- A middleware that makes sure your web-app runs either on or without 'www' in the domain.\n\n\t- A ``SessionManagerBase`` base class, that helps in keeping your session related code object-oriented and clean! See session.py for usage details.\n\n\t- An ``EmailBackend`` for authenticating users based on their email, apart from username.\n\n\t- Some custom db fields that you can use in your models including a ``UniqueHashField`` and ``RandomHashField``.\n\n\t- Bunch of helpful functions in helper.py\n\n\t- A ``render_form_field`` template tag that makes rendering form fields easy and DRY.\n\n\t- A couple of dry response classes: ``JsonResponse`` and ``XMLResponse`` in the django_common.http that can be used in views that give json/xml responses.\n\n\nInstallation\n-------------\n\n- Install django_common (ideally in your virtualenv!) using pip or simply getting a copy of the code and putting it in a directory in your codebase.\n\n- Add ``django_common`` to your Django settings ``INSTALLED_APPS``::\n\n\tINSTALLED_APPS = [\n # ...\n \"django_common\",\n ]\n\n- Add the following to your settings.py with appropriate values:\n\n\t- IS_DEV\n\t- IS_PROD\n\t- DOMAIN_NAME\n\t- WWW_ROOT\n\n- Add ``common_settings`` to your Django settings ``TEMPLATE_CONTEXT_PROCESSORS``::\n\n\tTEMPLATE_CONTEXT_PROCESSORS = [\n\t\t# ...\n\t\t'django_common.context_processors.common_settings',\n\t]\n\n- Add ``EmailBackend`` to the Django settings ``AUTHENTICATION_BACKENDS``::\n\n\tAUTHENTICATION_BACKENDS = (\n\t\t'django_common.auth_backends.EmailBackend',\n\t\t'django.contrib.auth.backends.ModelBackend'\n\t)\n\n- Add ``WWWRedirectMiddleware`` if required to the list of middlewares::\n\n\tMIDDLEWARE_CLASSES = [\n\t\t# ...\n\t\t\"WWWRedirectMiddleware\",\n\t]\n\n- Scaffolds / ajax_form.js (ajax forms) etc. require jQuery\n\n\nScaffolding feature\n-------------------\n\n1. Installing\n\nTo get scaffold just download ``scaffold`` branch of django-common, add it to ``INSTALLED_APPS`` and set up ``SCAFFOLD_APPS_DIR`` in settings.\n\nDefault is set to main app directory. However if you use django_base_project you must set up this to ``SCAFFOLD_APPS_DIR = 'apps/'``.\n\n2. Run\n\nTo run scaffold type::\n\n python manage.py scaffold APPNAME --model MODELNAME [fields]\n\nAPPNAME is app name. If app does not exists it will be created.\nMODELNAME is model name. Just enter model name that you want to create (for example: Blog, Topic, Post etc). It must be alphanumerical. Only one model per run is allowed!\n\n[fields] - list of the model fields.\n\n3. Field types\n\nAvailable fields::\n\n char - CharField\n text - TextField\n int - IntegerFIeld\n decimal -DecimalField\n datetime - DateTimeField\n foreign - ForeignKey\n\nAll fields requires name that is provided after ``:`` sign, for example::\n\n char:title text:body int:posts datetime:create_date\n\nTwo fields ``foreign`` and ``decimal`` requires additional parameters:\n\n- \"foreign\" as third argument takes foreignkey model, example::\n\n foreign:blog:Blog, foreign:post:Post, foreign:added_by:User\n\nNOTICE: All foreign key models must alread exist in project. User and Group model are imported automatically.\n\n- decimal field requires two more arguments ``max_digits`` and ``decimal_places``, example::\n\n decimal:total_cost:10:2\n\nNOTICE: To all models scaffold automatically adds two fields: update_date and create_date.\n\n4. How it works?\n\nScaffold creates models, views (CRUD), forms, templates, admin, urls and basic tests (CRUD). Scaffold templates are using two blocks extending from base.html::\n\n {% extends \"base.html\" %}\n {% block page-title %} {% endblock %}\n {% block conent %} {% endblock %}\n\nSo be sure you have your base.html set up properly.\n\nScaffolding example usage\n-------------------------\n\nLet's create very simple ``forum`` app. We need ``Forum``, ``Topic`` and ``Post`` model.\n\n- Forum model\n\nForum model needs just one field ``name``::\n\n python manage.py scaffold forum --model Forum char:name\n\n- Topic model\n\nTopics are created by site users so we need: ``created_by``, ``title`` and ``Forum`` foreign key (``update_date`` and ``create_date`` are always added to models)::\n\n python manage.py scaffold forum --model Topic foreign:created_by:User char:title foreign:forum:Forum\n\n- Post model\n\nLast one are Posts. Posts are related to Topics. Here we need: ``title``, ``body``, ``created_by`` and foreign key to ``Topic``::\n\n python manage.py scaffold forum --model Post char:title text:body foreign:created_by:User foreign:topic:Topic\n\nAll data should be in place!\n\nNow you must add ``forum`` app to ``INSTALLED_APPS`` and include app in ``urls.py`` file by adding into urlpatterns::\n\n urlpatterns = [\n ...\n url(r'^', include('forum.urls')),\n ]\n\nNow syncdb new app and you are ready to go::\n\n python manage.py syncdb\n\nRun your server::\n\n python manage.py runserver\n\nAnd go to forum main page::\n\n http://localhost:8000/forum/\n\nAll structure are in place. Now you can personalize models, templates and urls.\n\nAt the end you can test new app by runing test::\n\n python manage.py test forum\n\n Creating test database for alias 'default'...\n .......\n ----------------------------------------------------------------------\n Ran 7 tests in 0.884s\n\n OK\n\nHappy scaffolding!\n\nGeneration of SECRET_KEY\n------------------------\n\nSometimes you need to generate a new ``SECRET_KEY`` so now you can generate it using this command:\n\n $ python manage.py generate_secret_key\n\nSample output:\n\n $ python manage.py generate_secret_key\n\n SECRET_KEY: 7,=_3t?n@'wV=p`ITIA6\"CUgJReZf?s:`f~Jtl#2i=i^z%rCp-\n\nOptional arguments\n\n1. ``--length`` - is the length of the key ``default=50``\n2. ``--alphabet`` - is the alphabet to use to generate the key ``default=ascii letters + punctuation symbols``\n\nDjango settings keys\n--------------------\n\n- DOMAIN_NAME - Domain name, ``\"www.example.com\"``\n- WWW_ROOT - Root website url, ``\"https://www.example.com/\"``\n- IS_DEV - Current environment is development environment\n- IS_PROD - Current environment is production environment\n\n\nThis open-source app is brought to you by Tivix, Inc. ( http://tivix.com/ )\n\n\nChangelog\n=========\n\n0.9.2\n-----\n - Change for Django 2.X\n\n0.9.1\n-----\n - Change for Django 1.10 - render() must be called with a dict, not a Context\n\n0.9.0\n-----\n - Django 1.10 support\n - README.txt invalid characters fix\n - Add support for custom user model in EmailBackend\n - Fixes for DB fields and management commands\n\n0.8.0\n-----\n - compatability code moved to compat.py\n - ``generate_secret_key`` management command.\n - Fix relating to https://code.djangoproject.com/ticket/17627, package name change.\n - Pass form fields with HiddenInput widget through render_form_field\n - string.format usage / other refactoring / more support for Python 3\n\n\n0.7.0\n-----\n - PEP8 codebase cleanup.\n - Improved python3 support.\n - Django 1.8 support.\n\n0.6.4\n-----\n - Added python3 support.\n\n0.6.3\n-----\n - Changed mimetype to content_type in class JsonReponse to reflect Django 1.7 deprecation.\n\n0.6.2\n-----\n - Django 1.7 compatability using simplejson as fallback\n\n\n0.6.1\n-----\n - Added support for attaching content to emails manually (without providing path to file).\n\n - Added LoginRequiredMixin\n\n\n0.6\n---\n - Added support for Django 1.5\n\n - Added fixes in nested inlines\n\n - Added support for a multi-select checkbox field template and radio button in render_form_field\n\n - Added Test Email Backend for overwrite TO, CC and BCC fields in all outgoing emails\n\n - Added Custom File Email Backend to save emails as file with custom extension\n\n - Rewrote fragments to be Bootstrap-compatible\n\n\n0.5.1\n-----\n\n - root_path deprecated in Django 1.4+\n\n\n0.5\n---\n\n - Added self.get_inline_instances() usages instead of self.inline_instances\n\n - Changed minimum requirement to Django 1.4+ because of the above.\n\n\n0.4\n---\n\n - Added nested inline templates, js and full ajax support. Now we can add/remove nested fields dynamically.\n\n - JsonpResponse object for padded JSON\n\n - User time tracking feature - how long the user has been on site, associated middleware etc.\n\n - @anonymous_required decorator: for views that should not be accessed by a logged-in user.\n\n - Added EncryptedTextField and EncryptedCharField\n\n - Misc. bug fixes", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/tivix/django-common", "keywords": "django", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-common-helpers", "package_url": "https://pypi.org/project/django-common-helpers/", "platform": "", "project_url": "https://pypi.org/project/django-common-helpers/", "project_urls": { "Homepage": "http://github.com/tivix/django-common" }, "release_url": "https://pypi.org/project/django-common-helpers/0.9.2/", "requires_dist": null, "requires_python": "", "summary": "Common things every Django app needs!", "version": "0.9.2" }, "last_serial": 4134711, "releases": { "0.1": [], "0.3": [ { "comment_text": "", "digests": { "md5": "5777e3f65c516d04317f6fbbb1e6db69", "sha256": "7c857a26a519dee0c407d0317e46ee7cb407372c45ec56030f43537d010012b9" }, "downloads": -1, "filename": "django-common-helpers-0.3.tar.gz", "has_sig": false, "md5_digest": "5777e3f65c516d04317f6fbbb1e6db69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20315, "upload_time": "2012-08-28T08:03:10", "url": "https://files.pythonhosted.org/packages/58/eb/10bfbebbbb59f5908d870bdfe5c9c694fabdb3851dafc932a4b9e0243d67/django-common-helpers-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "34210f02e2562916b6a425b3c6e95d78", "sha256": "3bc6d675b68f6f94cdeb8d3020f2d8928a23b821fe55551e88216ea8239c24be" }, "downloads": -1, "filename": "django-common-helpers-0.4.tar.gz", "has_sig": false, "md5_digest": "34210f02e2562916b6a425b3c6e95d78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29833, "upload_time": "2013-03-09T20:03:14", "url": "https://files.pythonhosted.org/packages/f9/5e/819b0e4341b83b25749353a11daf47be6d852eb38ad1ec256bcdeb070f03/django-common-helpers-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "f127dcf1404ade2049dcda209cc782c1", "sha256": "fd1e42fdb2c6bbd32e3ab2545b5bec3a13ce8f2a116862691467987db6c1fb3c" }, "downloads": -1, "filename": "django-common-helpers-0.5.tar.gz", "has_sig": false, "md5_digest": "f127dcf1404ade2049dcda209cc782c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29938, "upload_time": "2013-05-02T00:39:50", "url": "https://files.pythonhosted.org/packages/1c/6d/aebb7c50c87f0b0ac5e9cf432837e3f0970fabef57580225983b37205993/django-common-helpers-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "33b7644f7fea29659b8369db4f2a3edd", "sha256": "96136842d372f171967c4f8a0d40781686de3bd4c9304cf78bf19e6d097f66f1" }, "downloads": -1, "filename": "django-common-helpers-0.5.1.tar.gz", "has_sig": false, "md5_digest": "33b7644f7fea29659b8369db4f2a3edd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30001, "upload_time": "2013-05-02T00:42:34", "url": "https://files.pythonhosted.org/packages/4f/06/259babb88a2ac1dd7f5fec31346f5f7b3e4c287a7e143184d060ac19ac4a/django-common-helpers-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "444dcec2a5077fd62648f458f822c613", "sha256": "19729bc4a9e7e7c53a7f0f4b4b8e6f0768d8ec8653643edee4bbe76c5e30771b" }, "downloads": -1, "filename": "django-common-helpers-0.6.0.tar.gz", "has_sig": false, "md5_digest": "444dcec2a5077fd62648f458f822c613", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31303, "upload_time": "2013-06-05T11:23:58", "url": "https://files.pythonhosted.org/packages/5c/3e/477fddab698eaa3fe00bc82ae062862e3b825994fa5c2117720a53319591/django-common-helpers-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "4505af150ef9e82f4b10746645151efb", "sha256": "02a6d43953bf433ae9b8a2499e5fca53e4d2226db6a154fc76eb21426a2447a0" }, "downloads": -1, "filename": "django-common-helpers-0.6.1.tar.gz", "has_sig": false, "md5_digest": "4505af150ef9e82f4b10746645151efb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31868, "upload_time": "2014-07-04T13:06:16", "url": "https://files.pythonhosted.org/packages/d2/0b/5fd4c2569f65e558a4e789717e7ed7f8ad74bb690111ee1d52c6cd515af4/django-common-helpers-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "9e9fd055fecdbc7fa1a3d63c884a2667", "sha256": "b3d25c43e3f4fe4b50a7181ef371a90cbaa965f31b59b75fefba946579625c1c" }, "downloads": -1, "filename": "django-common-helpers-0.6.2.tar.gz", "has_sig": false, "md5_digest": "9e9fd055fecdbc7fa1a3d63c884a2667", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31879, "upload_time": "2014-09-03T20:59:56", "url": "https://files.pythonhosted.org/packages/7c/bd/f2f06eebd3fd7b88e8695996d8e23fdbcba50785070785a3091d848228fe/django-common-helpers-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "a689fae3282f68947e13d70d9f0c8b61", "sha256": "1ad0cafaa4853f4c2636a4a0a1bdb0545a7f5a3ca33e6adb4b355cf4c9b1fc23" }, "downloads": -1, "filename": "django-common-helpers-0.6.3.tar.gz", "has_sig": false, "md5_digest": "a689fae3282f68947e13d70d9f0c8b61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31943, "upload_time": "2014-11-04T00:28:47", "url": "https://files.pythonhosted.org/packages/ca/13/5941a83d38e1d0949e648a85a87fe6383a2be3e602fa0fb9567c561fd83b/django-common-helpers-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "5db997f5d93575eec55b7127dd042fb5", "sha256": "c485fa07da0a6c7a14c9fea82a29b12fc3e7340991470f5e8afbbf6bbbe340ec" }, "downloads": -1, "filename": "django-common-helpers-0.6.4.tar.gz", "has_sig": false, "md5_digest": "5db997f5d93575eec55b7127dd042fb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31914, "upload_time": "2015-02-11T08:38:02", "url": "https://files.pythonhosted.org/packages/9d/e0/d9f15599f8f1c422545dc246837ede5099d3429756f45a4c26c04cb34329/django-common-helpers-0.6.4.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "b317b9807bb0821810cb8f5856367254", "sha256": "afe686258b3f8d188a926f94b126bbcd2a38d85c55cb31709d681fa423c399fb" }, "downloads": -1, "filename": "django-common-helpers-0.7.0.tar.gz", "has_sig": false, "md5_digest": "b317b9807bb0821810cb8f5856367254", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32369, "upload_time": "2015-04-22T11:09:15", "url": "https://files.pythonhosted.org/packages/c4/b9/ade8daab31deb8078aba88925cc9864350acb20464b49a3d981591e3c21a/django-common-helpers-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "989a8f5a56d2509a47e392243573508c", "sha256": "982263810868f7b9509b32aa18fdd46a2571e6fade5aaf6deb7256e3e40a70fc" }, "downloads": -1, "filename": "django-common-helpers-0.8.0.tar.gz", "has_sig": false, "md5_digest": "989a8f5a56d2509a47e392243573508c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33820, "upload_time": "2016-02-17T07:42:44", "url": "https://files.pythonhosted.org/packages/71/41/f97e7aa9b587b7c5f08d482b0f7b7ed52bed8239e879ccf06f019563d8a1/django-common-helpers-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "a74a14770efa17d8971805b08a501985", "sha256": "988e3a484cb7c476a59627b7b9629717a9c97312e54fc8a4839f5ff4057e4895" }, "downloads": -1, "filename": "django-common-helpers-0.9.0.tar.gz", "has_sig": false, "md5_digest": "a74a14770efa17d8971805b08a501985", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34045, "upload_time": "2016-10-18T20:07:32", "url": "https://files.pythonhosted.org/packages/8b/76/f33e181f7336d7d64c9343c85eb40246da62c6ad502282196155a36e8083/django-common-helpers-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "8586e55078bb6d93ad44c3803c0f029e", "sha256": "0455d0af571659397872a0fc5a44d09525ceff2d215c7bd47d7aac56aa4a3bd2" }, "downloads": -1, "filename": "django-common-helpers-0.9.1.tar.gz", "has_sig": false, "md5_digest": "8586e55078bb6d93ad44c3803c0f029e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34104, "upload_time": "2017-05-08T20:44:50", "url": "https://files.pythonhosted.org/packages/82/7f/4c2e29f28411ca0c00a98430f0b0a1009843e59ae12516b674278434b936/django-common-helpers-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "ce4601931de4819d4a69086b90a7bf64", "sha256": "2d56be6fa261d829a6a224f189bf276267b9082a17d613fe5f015dd4d65c17b4" }, "downloads": -1, "filename": "django-common-helpers-0.9.2.tar.gz", "has_sig": false, "md5_digest": "ce4601931de4819d4a69086b90a7bf64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37792, "upload_time": "2018-08-04T03:18:17", "url": "https://files.pythonhosted.org/packages/04/b0/19d2de3ee903505288e30e21f0823ab72101d067e091a6b6f5b575b79ca5/django-common-helpers-0.9.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ce4601931de4819d4a69086b90a7bf64", "sha256": "2d56be6fa261d829a6a224f189bf276267b9082a17d613fe5f015dd4d65c17b4" }, "downloads": -1, "filename": "django-common-helpers-0.9.2.tar.gz", "has_sig": false, "md5_digest": "ce4601931de4819d4a69086b90a7bf64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37792, "upload_time": "2018-08-04T03:18:17", "url": "https://files.pythonhosted.org/packages/04/b0/19d2de3ee903505288e30e21f0823ab72101d067e091a6b6f5b575b79ca5/django-common-helpers-0.9.2.tar.gz" } ] }