Django reaction System, It can be associated with any given model.
Project description
Installation
Install using pip
python -m pip install django-reaction-system
or Clone the repository then copy reaction folder and paste in project folder.
git clone https://github.com/mahyar-amiri/django-reaction-system.git
Configuration
Add reaction.apps.ReactionConfig to installed_apps after django.contrib.auth in the settings.py file. Add MEDIA_URL and MEDIA_ROOT.
# setting.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # MY APPS 'reaction.apps.ReactionConfig', ] ... MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR / 'media'
Add path('reaction/', include('reaction.urls')), and media root to urlpatterns in the project urls.py file.
# urls.py from django.urls import path, include from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('reaction/', include('reaction.urls')), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Connect reaction to target model. In models.py add the field reactions as a GenericRelation field to the required model.
NOTE: Please note that the field name must be reactions NOT reaction.
# models.py from django.db import models from django.contrib.contenttypes.fields import GenericRelation from reaction.models import Reaction class Article(models.Model): title = models.CharField(max_length=20) content = models.TextField() # the field name should be reactions reactions = GenericRelation(Reaction)
Do migrations
python manage.py migrate
Usage
In the template (e.g. post_detail.html) add the following template tags where obj is the instance of post model.
{% load reaction_tags %}
Add the following template tag to load stylesheet.
{% render_reaction_import %}
Add the following template tags where you want to render reactions.
{% render_reaction request obj settings_slug='default-config' %} {# Render all the reactions belong to the passed object "obj" #}
if your context_object_name is not obj (e.g. article) replace obj with context_object_name.
{% render_reaction request obj=article settings_slug='default-config' %}
Add render_reaction_script tag at the end of the last render_reaction tag.
{% render_reaction_import %} {% render_reaction request=request obj=article settings_slug='default-config' %} {% render_reaction request=request obj=article settings_slug='second-config' %} {% render_reaction_script %}
Project details
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 django-reaction-system-1.1.1.tar.gz
.
File metadata
- Download URL: django-reaction-system-1.1.1.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b12d2f7c2477d256ee7f29b4c129a56c6e6b1fa547b5728088f3354d84630911 |
|
MD5 | 6f7bfae85dca4b049139ebdad0019142 |
|
BLAKE2b-256 | fc5f69af44174908928fd1da475d5faa4c31e9c367a6500cd9e0e47ae0f6c98d |
File details
Details for the file django_reaction_system-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: django_reaction_system-1.1.1-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a95b48add9394ef5fb78d70644f1a637a383ba1fa8a998190bd3dfc8d5777da |
|
MD5 | 05cbb53f0cf8ce7e0d67586598f30aa6 |
|
BLAKE2b-256 | 9dd4780254bbab9ba4c04c2cf4138267f1adf5d988521f57f24b35a50e909f99 |