diff --git a/example/app/migrations/0001_initial.py b/example/app/migrations/0001_initial.py new file mode 100644 index 0000000..2637a02 --- /dev/null +++ b/example/app/migrations/0001_initial.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9 on 2016-09-22 16:56 +from __future__ import unicode_literals + +from django.db import migrations, models +import multiselectfield.db.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Book', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=200)), + ('categories', multiselectfield.db.fields.MultiSelectField(choices=[(1, 'Handbooks and manuals by discipline'), (2, 'Business books'), (3, 'Books of literary criticism'), (4, 'Books about literary theory'), (5, 'Books about literature')], default=1, max_length=9)), + ('tags', multiselectfield.db.fields.MultiSelectField(blank=True, choices=[('sex', 'Sex'), ('work', 'Work'), ('happy', 'Happy'), ('food', 'Food'), ('field', 'Field'), ('boring', 'Boring'), ('interesting', 'Interesting'), ('huge', 'huge'), ('nice', 'Nice')], max_length=54, null=True)), + ], + ), + ] diff --git a/example/app/migrations/__init__.py b/example/app/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/example/app/urls.py b/example/app/urls.py index f7d22c0..3ba0d5a 100644 --- a/example/app/urls.py +++ b/example/app/urls.py @@ -14,12 +14,27 @@ # You should have received a copy of the GNU Lesser General Public License # along with this software. If not, see . +from django import VERSION try: - from django.conf.urls import include, patterns, url + from django.conf.urls import url + + # Compatibility for Django > 1.8 + def patterns(prefix, *args): + if VERSION < (1, 9): + from django.conf.urls import patterns as django_patterns + return django_patterns(prefix, *args) + elif prefix != '': + raise NotImplementedError("You need to update your URLConf for " + "Django 1.10, or tweak it to remove the " + "prefix parameter") + else: + return list(args) except ImportError: # Django < 1.4 - from django.conf.urls.defaults import include, patterns, url + from django.conf.urls.defaults import patterns, url + +from .views import app_index -urlpatterns = patterns('app.views', - url(r'^$', 'app_index', name='app_index'), +urlpatterns = patterns('', + url(r'^$', app_index, name='app_index'), ) diff --git a/example/example/settings.py b/example/example/settings.py index afef900..4b3076a 100644 --- a/example/example/settings.py +++ b/example/example/settings.py @@ -18,8 +18,9 @@ import os from os import path +from django import VERSION + DEBUG = True -TEMPLATE_DEBUG = DEBUG BASE_DIR = path.dirname(path.abspath(__file__)) @@ -105,13 +106,6 @@ STATICFILES_FINDERS = ( # Make this unique, and don't share it with anybody. SECRET_KEY = 'lwfo1o9r^+x8xwec=6$a&m(dmg$1t%8)g6hr%&b4%)%_ualb8s' -# List of callables that know how to import templates from various sources. -TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', -# 'django.template.loaders.eggs.Loader', -) - MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', @@ -127,22 +121,57 @@ ROOT_URLCONF = 'example.urls' # Python dotted path to the WSGI application used by Django's runserver. WSGI_APPLICATION = 'example.wsgi.application' -TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. -) +if VERSION < (1, 8): + TEMPLATE_DEBUG = DEBUG -TEMPLATE_CONTEXT_PROCESSORS = ( - 'django.contrib.auth.context_processors.auth', - 'django.core.context_processors.debug', - 'django.core.context_processors.i18n', - 'django.core.context_processors.media', - 'django.core.context_processors.request', - 'django.core.context_processors.tz', - 'django.core.context_processors.static', - 'django.contrib.messages.context_processors.messages', -) + # List of callables that know how to import templates from various sources. + TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + # 'django.template.loaders.eggs.Loader', + ) + + TEMPLATE_DIRS = ( + # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. + ) + + TEMPLATE_CONTEXT_PROCESSORS = ( + 'django.contrib.auth.context_processors.auth', + 'django.core.context_processors.debug', + 'django.core.context_processors.i18n', + 'django.core.context_processors.media', + 'django.core.context_processors.request', + 'django.core.context_processors.tz', + 'django.core.context_processors.static', + 'django.contrib.messages.context_processors.messages', + ) +else: + TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'OPTIONS': { + 'context_processors': [ + 'django.contrib.auth.context_processors.auth', + 'django.core.context_processors.debug', + 'django.core.context_processors.i18n', + 'django.core.context_processors.media', + 'django.core.context_processors.request', + 'django.core.context_processors.tz', + 'django.core.context_processors.static', + 'django.contrib.messages.context_processors.messages', + ], + 'debug': DEBUG, + 'loaders': [ + # List of callables that know how to import templates from + # various sources. + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + ] + }, + } + ] INSTALLED_APPS = ( 'django.contrib.auth', @@ -198,10 +227,7 @@ LOGGING = { } } -import django - -if django.VERSION[0] == 1 and django.VERSION[1] >= 4: - TEMPLATE_CONTEXT_PROCESSORS += ('django.core.context_processors.tz',) +if VERSION >= (1, 4): LOGGING['filters'] = { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse', @@ -209,5 +235,5 @@ if django.VERSION[0] == 1 and django.VERSION[1] >= 4: } LOGGING['handlers']['mail_admins']['filters'] = ['require_debug_false'] -if django.VERSION >= (1, 6): +if VERSION >= (1, 6): TEST_RUNNER = 'django.test.runner.DiscoverRunner' diff --git a/example/example/urls.py b/example/example/urls.py index 59a52c4..121903c 100644 --- a/example/example/urls.py +++ b/example/example/urls.py @@ -14,14 +14,27 @@ # You should have received a copy of the GNU Lesser General Public License # along with this software. If not, see . - +from django import VERSION from django.conf import settings try: - from django.conf.urls import include, patterns, url + from django.conf.urls import include, url + + # Compatibility for Django > 1.8 + def patterns(prefix, *args): + if VERSION < (1, 9): + from django.conf.urls import patterns as django_patterns + return django_patterns(prefix, *args) + elif prefix != '': + raise NotImplementedError("You need to update your URLConf for " + "Django 1.10, or tweak it to remove the " + "prefix parameter") + else: + return list(args) except ImportError: # Django < 1.4 from django.conf.urls.defaults import include, patterns, url from django.contrib import admin +from django.views.static import serve admin.autodiscover() @@ -30,13 +43,12 @@ js_info_dict = { } urlpatterns = patterns('', - url(r'^', include('example.app.urls')), + url(r'^', include('app.urls')), url(r'^admin/', include(admin.site.urls)), ) urlpatterns += patterns('', - (r'^%s(?P.*)$' % settings.MEDIA_URL[1:], - 'django.views.static.serve', - {'document_root': settings.MEDIA_ROOT, - 'show_indexes': True}), + url(r'^%s(?P.*)$' % settings.MEDIA_URL[1:], + serve, + {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}), )