Django Kaleidos Rate is a django application for rate objects.
Configure the app in your setting INSTALLED_APPS:
INSTALLED_APPS = [ ... krate, ... ]
configure the dbratehandler, for example:
INSTALLED_APPS = [ ... krate.ratehandlers.dbratehandler, ... ]
Configure the rate handler on settings.py, for example:
KRATE_RATE_HANDLER = "krate.ratehandlers.dbratehandler.DBRateHandler"
If you want to have an copy of the average rate stored in the models add the KRateableMixin to your models, for example:
from krate.ratehandlers.dbratehandler.models import KRateableMixin class MyModel(models.Model, KRateableMixin): ... # My model definition...
If you want to show and manage the valorations of the objects in the admin panel add a new inline to your models admin classes, for example:
from django.contrib.contenttypes.generic import GenericTabularInline from krate.ratehandlers.dbratehandler.models import ObjRate, ObjRateAggregate class ObjRateInline(GenericTabularInline): model = ObjRate class ObjRateAggregateInline(GenericTabularInline): model = ObjRateAggregate class MyModelAdmin(admin.ModelAdmin): model = models.MyModel inlines = [MyOtherInlines, ..., ObjRateAggregateInline, ObjRateAggregateInline]
Now you can use rate_object in your views to store the rate from users, and use the {% krate object %} and {% mykrate request_or_user object %} to get the average rate, and my own rate.