A djangoCMS 3 blog application
Project description
A djangoCMS 3 blog application.
Supported Django versions:
Django 1.6
Django 1.7
Django 1.8
Supported django CMS versions:
django CMS 3.x
Quickstart
Install djangocms-blog:
pip install djangocms-blog
Add djangocms_blog and its dependencies to INSTALLED_APPS:
INSTALLED_APPS = [ ... 'filer', 'easy_thumbnails', 'cmsplugin_filer_image', 'parler', 'taggit', 'taggit_autosuggest', 'meta', 'meta_mixin', 'admin_enhancer', 'djangocms_blog', ... ]
Then sync and migrate:
$ python manage.py syncdb $ python manage.py migrate
External applications configuration
Dependency applications may need configuration to work properly.
Please, refer to each application documentation on details.
django-filer: http://django-filer.readthedocs.org
django-meta: https://github.com/nephila/django-meta#installation
django-parler: http://django-parler.readthedocs.org/en/latest/quickstart.html#configuration
django-taggit-autosuggest: https://bitbucket.org/fabian/django-taggit-autosuggest
Quick hint
The following are minimal defaults to get the blog running; they may not be suited for your deployment.
Add the following settings to your project:
SOUTH_MIGRATION_MODULES = { 'easy_thumbnails': 'easy_thumbnails.south_migrations', 'taggit': 'taggit.south_migrations', } THUMBNAIL_PROCESSORS = ( 'easy_thumbnails.processors.colorspace', 'easy_thumbnails.processors.autocrop', 'filer.thumbnail_processors.scale_and_crop_with_subject_location', 'easy_thumbnails.processors.filters', ) META_SITE_PROTOCOL = 'http' META_USE_SITES = True
If you are using Django 1.7+, be aware than filer < 0.9.10, cmsplugin_filer and django-cms < 3.1 currently requires you to setup MIGRATION_MODULES in settings:
MIGRATION_MODULES = { 'cms': 'cms.migrations_django', # only for django CMS 3.0 'menus': 'menus.migrations_django', # only for django CMS 3.0 'filer': 'filer.migrations_django', # only for django filer 0.9.9 and below 'cmsplugin_filer_image': 'cmsplugin_filer_image.migrations_django', }
Please check django CMS installation, cmsplugin-filer README for detailed information.
Configure parler according to your languages:
PARLER_LANGUAGES = { 1: ( {'code': 'en',}, {'code': 'it',}, {'code': 'fr',}, ), }
Add the following to your urls.py:
url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')),
To start your blog you need to use AppHooks from django CMS to add the blog to a django CMS page:
Create a new django CMS page
Go to Advanced settings and select Blog from the Application selector;
Eventually customise the Application instance name;
Publish the page
Restart the project instance to properly load blog urls.
Add and edit blog by creating them in the admin or using the toolbar, and the use the django CMS frontend editor to edit the blog content:
Create a new blog entry in django admin backend or from the toolbar
Click on “view on site” button to view the post detail page
Edit the post via djangocms frontend by adding / editing plugins
Publish the blog post by flagging the “Publish” switch in the blog post admin
Templates
To ease the template customisations a djangocms_blog/base.html template is used by all the blog templates; the templates itself extends a base.html template; content is pulled in the content block. If you need to define a different base template, or if your base template does not defines a content block, copy in your template directory djangocms_blog/base.html and customise it according to your needs; the other application templates will use the newly created template and will ignore the bundled one.
Features
Placeholder content editing
Frontend editing using django CMS 3.0 frontend editor
Multilingual support using django-parler
Support for Twitter cards, Open Graph and Google+ snippets meta tags
Optional support for simpler TextField-based content editing
Multisite support (posts can be visible in one or more Django sites on the same project)
Import from Wordpress
If you want to import content from existing wordpress blog, check https://pypi.python.org/pypi/the-real-django-wordpress and this gist https://gist.github.com/yakky/11336204 as a base.
Settings
BLOG_ENABLE_COMMENTS: Whether to enable comments by default on posts; while djangocms_blog does not ship any comment system, this flag can be used to control the chosen comments framework; (default: True)
BLOG_USE_PLACEHOLDER: Post content is managed via placeholder; if False a simple HTMLField is used; (default: True)
BLOG_USE_ABSTRACT: Use an abstract field for the post; if False no abstract field is available for every post; (default: True)
BLOG_IMAGE_THUMBNAIL_SIZE: Size of the main image when shown on the post lists; it’s a dictionary with size, crop and upscale keys; (default: {'size': '120x120', 'crop': True,'upscale': False})
BLOG_IMAGE_FULL_SIZE: Size of the main image when shown on the post detail; it’s a dictionary with size, crop and upscale keys; (default: {'size': '640x120', 'crop': True,'upscale': False})
BLOG_PAGINATION: Number of post per page; (default: 10)
BLOG_LATEST_POSTS: Default number of post in the Latest post plugin; (default: 5)
BLOG_POSTS_LIST_TRUNCWORDS_COUNT: Default number of words shown for abstract in the post list; (default: 100)
BLOG_MULTISITE: Add support for multisite setup
BLOG_AUTHOR_DEFAULT: Use a default if not specified; if set to True the current user is set as the default author, if set to False no default author is set, if set to a string the user with the provided username is used; (default: True)
Known djangocms-blog websites
History
0.5.0 (2015-08-09)
Add support for Django 1.8
Drop dependency on Django select2
Code cleanups
Enforce flake8 / isort checks
Add categories menu
Add option to disable the abstract
0.4.0 (2015-03-22)
Fix Django 1.7 issues
Fix dependencies on python 3 when using wheel packages
Drop Django 1.5 support
Fix various templates issues
UX fixes in the admin
0.3.1 (2015-01-07)
Fix page_name in template
Set cascade to set null for post image and thumbnail options
0.3.0 (2015-01-04)
Multisite support
Configurable default author support
Refactored settings
Fix multilanguage issues
Fix SEO fields length
Post absolute url is generated from the title in any language if current is not available
If djangocms-page-meta and djangocms-page-tags are installed, the relevant toolbar items are removed from the toolbar in the post detail view to avoid confusings page meta / tags with post ones
Plugin API changed to filter out posts according to the request.
Django 1.7 support
Python 3.3 and 3.4 support
0.2.0 (2014-09-24)
INCOMPATIBLE CHANGE: view names changed!
Based on django parler 1.0
Toolbar items contextual to the current page
Add support for canonical URLs
Add transifex support
Add social tags via django-meta-mixin
Per-post or site-wide comments enabling
Simpler TextField-based content editing for simpler blogs
Add support for custom user models
0.1.0 (2014-03-06)
First experimental release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file djangocms-blog-0.5.0.tar.gz
.
File metadata
- Download URL: djangocms-blog-0.5.0.tar.gz
- Upload date:
- Size: 42.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62b9bf6cc483ff751c45860354a01d0852beaea0db5239338d811ab9c41dff79 |
|
MD5 | 1bed7a6ae3127c15797d6958f828a3fb |
|
BLAKE2b-256 | 3e2fad1c7bad4cc1c79cdc954fbb6b0e7f74943afc0d7630436a4ba3b240c36e |
File details
Details for the file djangocms_blog-0.5.0-py2.py3-none-any.whl
.
File metadata
- Download URL: djangocms_blog-0.5.0-py2.py3-none-any.whl
- Upload date:
- Size: 90.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0ed15007456bf417731363f3f2c56a7a49e6bd6e9fb9e55b441f9dac2d14c86 |
|
MD5 | 2f2a72e49a6c59beb898a0511aee80fd |
|
BLAKE2b-256 | eaa589ff142f01df8dc7527cc30b665940d41860cda607d5bec175de19bba352 |
Social media tags settings
BLOG_TYPE: Generic type for the post object; (default: Article)
BLOG_FB_TYPE: Open Graph type for the post object; (default: Article)
BLOG_FB_APPID: Facebook Application ID
BLOG_FB_PROFILE_ID: Facebook profile ID of the post author
BLOG_FB_PUBLISHER: Facebook URL of the blog publisher
BLOG_FB_AUTHOR_URL: Facebook profile URL of the post author
BLOG_FB_AUTHOR: Facebook profile URL of the post author
BLOG_TWITTER_TYPE: Twitter Card type for the post object; (default: Summary)
BLOG_TWITTER_SITE: Twitter account of the site
BLOG_TWITTER_AUTHOR: Twitter account of the post author
BLOG_GPLUS_TYPE: Google+ Snippet type for the post object; (default: Blog)
BLOG_GPLUS_AUTHOR: Google+ account of the post author