Django-Niji¶
Django-NIJI is a pluggable forum APP for Django projects
Installation¶
Requirements¶
Django-NIJI is tested with the following Django and Python versions
Django from 1.8 to 1.10
Python from 2.7 3.4 3.5
Configuration¶
Tweak project settings¶
Required Settings:
INSTALLED_APPS += [
'django.contrib.humanize',
'crispy_forms',
'niji',
'rest_framework',
]
# Template context_processors
TEMPLATES[0]['OPTIONS']['context_processors'].append("niji.context_processors.niji_processor")
# Media related settings are required for avatar uploading to function properly
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Other Settings:
# Form UI Settings
CRISPY_TEMPLATE_PACK = 'bootstrap3'
# Configure where to link to from the Login and Reg buttons in the forum
NIJI_LOGIN_URL_NAME = "account:login"
NIJI_REG_URL_NAME = "account:reg"
# Site Name
NIJI_SITE_NAME = "A lovely forum"
Configure URLs¶
Simply include the urls
from django.conf.urls import url, include
from niji import urls as niji_urls
urlpatterns = [
...
url(r'', include(niji_urls, namespace="niji")),
]
Configure Celery¶
Django-NIJI requires celery to send notifications.
If you already have a celery configured for you Django project, you can use just that.
Otherwise, follow these simple steps:
Create celery.py
inside project directory¶
Please replace ``project_name`` with your project’s name
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings') # Change this to the project name
app = Celery('project_name')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
Modify project __init__.py
¶
from __future__ import absolute_import
from .celery import app as celery_app
Add setting entries¶
Please adjust some of the settings according to your case
BROKER_URL = 'redis://localhost:6379/0'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
If you don’t want to run a celery worker separately, include these entries:
BROKER_BACKEND = 'memory'
CELERY_EAGER_PROPAGATES_EXCEPTIONS = True
CELERY_ALWAYS_EAGER = True
Otherwise, you’ll need to run celery -A project_name worker -l INFO
Configure Editor (Optional)¶
If you have pagedown
in your settings.py
, Django-NIJI will
enable that editor automatically.
In order not to break the layout you may need to include the following settings:
# Pagedown Editor
PAGEDOWN_WIDGET_CSS = ('pagedown/demo/browser/demo.css', "css/editor.css",)
PAGEDOWN_WIDGET_TEMPLATE = 'niji/widgets/pagedown.html'
Migrate¶
python manage.py migrate
Collect Static Assets¶
python manage.py collectstatic
Now, login to your project’s admin page and add some Nodes before you can post anything.