Django rating System, It can be associated with any given model.
Project description
Installation
Install using pip
python -m pip install django-rating-system
or Clone the repository then copy rating folder and paste in project folder.
git clone https://github.com/mahyar-amiri/django-rating-system.git
Configuration
Add rating.apps.RatingConfig 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 'rating.apps.RatingConfig', ] ... MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR / 'media'
Add path('rating/', include('rating.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('rating/', include('rating.urls')), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Connect ratings to target model. In models.py add the field ratings as a GenericRelation field to the required model.
NOTE: Please note that the field name must be ratings NOT rating.
# models.py from django.db import models from django.contrib.contenttypes.fields import GenericRelation from rating.models import Rating class Article(models.Model): title = models.CharField(max_length=20) content = models.TextField() # the field name should be ratings ratings = GenericRelation(Rating)
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 rating_tags %}
Add the following template tag to load stylesheet.
{% render_rating_import %}
Add the following template tags where you want to render ratings.
{% render_rating request obj settings_slug='default-config' %} {# Render all the ratings belong to the passed object "obj" #}
if your context_object_name is not obj (e.g. article) replace obj with context_object_name.
{% render_rating request obj=article settings_slug='default-config' %}
Add the following template tag to show rating information.
{% render_rating_info request=request obj=article settings_slug='default-config' %}
use custom_template if you want to render your own template.
{% render_rating_info request=request obj=article settings_slug='default-config' custom_template='my_custom_rating_info.html' %}
Add render_rating_script tag at the end of the last render_rating tag.
{% render_rating_import %} {% render_rating request=request obj=article settings_slug='default-config' %} {% render_rating_info request=request obj=article settings_slug='default-config' %} {% render_rating request=request obj=article settings_slug='like-config' %} {% render_rating_info request=request obj=article settings_slug='like-config' custom_template='rating/rating_info.html' %} {% render_rating_script %}
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
Hashes for django-rating-system-1.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cce9e1b86c9de6d47a68017b7f0fd0d1c579a1597422a1a44debdb62920d5922 |
|
MD5 | ec7e31fc96d01b81c93b26a8f33b8fc3 |
|
BLAKE2b-256 | 817ded8a93408d109b4dafc7e19377be1e0c817c42014a8252b8977ad21b8180 |
Hashes for django_rating_system-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15dba151428a98e21dd8484db2250c91c8cbc17ce51e5d7bc23f887a7e5df4d5 |
|
MD5 | 412a9db9d6836672d914db4bec598ce8 |
|
BLAKE2b-256 | 1592d92f5e61528fc4a4d21cb4ff37caa7804eb5ec640fa701adc8bb780e403d |