diff --git a/djadmin2/tests/models.py b/djadmin2/tests/models.py new file mode 100644 index 0000000..e69de29 diff --git a/example/example/settings.py b/example/example/settings.py index 50a4748..cfedad2 100644 --- a/example/example/settings.py +++ b/example/example/settings.py @@ -1,4 +1,15 @@ -# Django settings for example project. +""" +Django settings for example project. + +Generated by 'django-admin startproject' using Django 1.9.6. + +For more information on this file, see +https://docs.djangoproject.com/en/1.9/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/1.9/ref/settings/ +""" + import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) @@ -16,14 +27,17 @@ DEBUG = True ALLOWED_HOSTS = [] -INSTALLED_APPS = ( + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', - 'django.contrib.admin', # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', 'floppyforms', @@ -34,18 +48,19 @@ INSTALLED_APPS = ( 'blog', 'files', 'polls' -) +] -MIDDLEWARE_CLASSES = ( +MIDDLEWARE_CLASSES = [ + 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', - # Uncomment the next line for simple clickjacking protection: - # 'django.middleware.clickjacking.XFrameOptionsMiddleware', -) + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] ROOT_URLCONF = 'example.urls' @@ -67,6 +82,7 @@ TEMPLATES = [ WSGI_APPLICATION = 'example.wsgi.application' + # Database # https://docs.djangoproject.com/en/1.9/ref/settings/#databases @@ -77,8 +93,10 @@ DATABASES = { } } + # Password validation # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators + AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', @@ -123,4 +141,7 @@ STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), ) +MEDIA_ROOT = os.path.join(BASE_DIR) +MEDIA_URL = "/media/" + ADMIN2_THEME_DIRECTORY = "djadmin2theme_default" \ No newline at end of file diff --git a/example/example/urls.py b/example/example/urls.py index fe6d458..89f0c48 100644 --- a/example/example/urls.py +++ b/example/example/urls.py @@ -1,5 +1,9 @@ +from __future__ import unicode_literals + from blog.views import BlogListView, BlogDetailView +from django.conf import settings from django.conf.urls import include, url +from django.conf.urls.static import static from django.contrib import admin from djadmin2.site import djadmin2_site @@ -13,4 +17,5 @@ urlpatterns = [ url(r'^blog/', BlogListView.as_view(template_name="blog/blog_list.html"), name='blog_list'), url(r'^blog/detail(?P\d+)/$', BlogDetailView.as_view(template_name="blog/blog_detail.html"), name='blog_detail'), url(r'^$', BlogListView.as_view(template_name="blog/home.html"), name='home'), -] +] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + diff --git a/example/example/wsgi.py b/example/example/wsgi.py index 9f3e21b..fd6d782 100644 --- a/example/example/wsgi.py +++ b/example/example/wsgi.py @@ -1,32 +1,16 @@ """ WSGI config for example project. -This module contains the WSGI application used by Django's development server -and any production WSGI deployments. It should expose a module-level variable -named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover -this application via the ``WSGI_APPLICATION`` setting. - -Usually you will have the standard Django WSGI application here, but it also -might make sense to replace the whole Django WSGI application with a custom one -that later delegates to the Django one. For example, you could introduce WSGI -middleware here, or combine a Django application with an application of another -framework. +It exposes the WSGI callable as a module-level variable named ``application``. +For more information on this file, see +https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/ """ + import os -# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks -# if running multiple sites in the same mod_wsgi process. To fix this, use -# mod_wsgi daemon mode with each site in its own daemon process, or use -# os.environ["DJANGO_SETTINGS_MODULE"] = "example.settings" +from django.core.wsgi import get_wsgi_application + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "example.settings") -# This application object is used by any WSGI server configured to use this -# file. This includes Django's development server, if the WSGI_APPLICATION -# setting points here. -from django.core.wsgi import get_wsgi_application application = get_wsgi_application() - -# Apply WSGI middleware here. -# from helloworld.wsgi import HelloWorldApplication -# application = HelloWorldApplication(application) diff --git a/example/files/models.py b/example/files/models.py index 09158c8..966c611 100644 --- a/example/files/models.py +++ b/example/files/models.py @@ -9,7 +9,7 @@ from django.utils.translation import ugettext_lazy as _ @python_2_unicode_compatible class CaptionedFile(models.Model): caption = models.CharField(max_length=200, verbose_name=_('caption')) - publication = models.FileField(upload_to='media', verbose_name=_('Uploaded File')) + publication = models.FileField(upload_to='captioned-files', verbose_name=_('Uploaded File')) def __str__(self): return self.caption @@ -21,7 +21,7 @@ class CaptionedFile(models.Model): @python_2_unicode_compatible class UncaptionedFile(models.Model): - publication = models.FileField(upload_to='media', verbose_name=_('Uploaded File')) + publication = models.FileField(upload_to='uncaptioned-files', verbose_name=_('Uploaded File')) def __str__(self): return self.publication.name