Skip to content
Snippets Groups Projects
Forked from Nik | Klampfradler / django-starfield
Up to date with the upstream repository.
Dominik George's avatar
3c1141f8
History

Django stars widget

Description

This is a simple widget rendering so-called rating stars as input for an integer field. It is based solely on CSS 3, as laid out by Martin Ivanov.

This is different from other star rating applications in that it provides only a widget returning its selction to any IntegerField. It is not a complete rating application, just a presentational widget for integer input. It is also different in that it depends only on CSS3, without any JavaScript.

In contrast to others (and to the original work credited above), this widget also works on browsers that do not support CSS (like text-mode browsers). In that case, it renders as basic radio buttons with numbers.

Usage

Just add the Stars widget to any IntegerField in a Django form.

from django import forms
from django_starfield import Stars

class StarsExampleForm(forms.Form):
    rating = forms.IntegerField(widget=Stars)

The following aspects are configurable, both in the Django settings and when creating the widget (by passing an argument to Stars):

Aspect Format Default Setting name Argument
Number of stars integer 5 STARFIELD_STARS stars
Character used as star hexadecimal codepoint 2605 STARFIELD_CODEPOINT codepoint
Colour of stars HTML colour #f5b301 STARFIELD_COLOUR colour

Please note that some browsers render some Unicode characters, especially emojis, as images, so changing the font colour will not work.