A reusable Django app that lets users write reviews for any model
Project description
A reusable Django app that lets users write reviews for any model
Installation
To get the latest stable release from PyPi
$ pip install django-review
To get the latest commit from GitHub
$ pip install -e git+git://github.com/bitmazk/django-review.git#egg=review
TODO: Describe further installation steps (edit / remove the examples below):
Add review to your INSTALLED_APPS
INSTALLED_APPS = (
...,
'hvad',
'review',
'user_media',
'generic_positions',
)
Add the review URLs to your urls.py
urlpatterns = patterns('',
...
url(r'^review/', include('review.urls')),
)
Don’t forget to migrate your database
./manage.py migrate
Usage
The only step you’ll have to take is to link to the review views. For example, you created a Book model, which should be reviewed by users.
Create a button and add some markup like:
<a href="{% url "review_create" content_type='book' object_id=book.pk %}">{% trans "Review this book" %}</a>
Ratings & Categories
To make use of ratings you’ll have to create RatingCategory objects. For example, you want to allow reviews of a hotel booking. You now might add categories like “room”, “service”, “food” or whatever. After you have created those categories in the standard Django admin interface they will appear in your review form. The average rating of an object is generated by all of its category ratings.
Settings
Default behaviour:
Users can rate form 0 to 5
Only authenticated users can post a review
Users can post multiple reviews on one object
Users can always update their posted reviews
If you want to change this behaviour, or if you like to add some more permission checks, read on.
REVIEW_RATING_CHOICES
If you want other rating choices than 0-5, you can define a new tuple, like:
REVIEW_RATING_CHOICES = (
('1', 'bad'),
('2', 'average'),
('3', 'excellent'),
)
REVIEW_ALLOW_ANONYMOUS
Allows anonymous review postings, if set to True.
REVIEW_DELETION_SUCCESS_URL
Name of the URL to redirect to after deleting a review instance. This could be your review listing, for example.
REVIEW_UPDATE_SUCCESS_URL (optional)
Default: DetailView of the instance.
Name of the URL to redirect to after creating/updating a review instance. This could be your review listing, for example.
REVIEW_UPDATE_SUCCESS_URL = 'my_view_name'
Or you can also specify a function, that returns the full path. The function then takes the review as parameter, so you can also access the reviewed item like follows
REVIEW_UPDATE_SUCCESS_URL = lambda review: review.reviewed_item.get_absolute_url()
REVIEW_AVOID_MULTIPLE_REVIEWS
Avoids multiple reviews by one user, if set to True. Doesn’t work with anonymous users.
REVIEW_PERMISSION_FUNCTION
Custom function to check the user’s permission. Use a function and note that the user and the reviewed item are only parameters.
REVIEW_PERMISSION_FUNCTION = lambda u, item: u.get_profile().has_permission(item)
REVIEW_UPDATE_PERIOD
You can limit the period, in which a user is able to update old reviews. Make sure to use minutes, e.g. 2880 for 48 hours.
REVIEW_CUSTOM_FORM
You can create your own review form (e.g. if you want to make use of the review extra info). Just name it.
REVIEW_CUSTOM_FORM = 'myapp.forms.MyCustomReviewForm'
Take a look at the included test app to get an example.
You can also use a custom form to add another content object to the review instance.
REVIEW_FORM_CHOICE_WIDGET
If you only want to override Django’s default widget for the used ChoiceField, that is used in the form, you can specify this optional setting.
# this would use a RadioSelect instead of the default Select
REVIEW_FORM_CHOICE_WIDGET = 'django.forms.widgets.RadioSelect'
Contribute
If you want to contribute to this project, please perform the following steps
# Fork this repository
# Clone your fork
$ mkvirtualenv -p python2.7 django-review
$ python setup.py install
$ pip install -r dev_requirements.txt
$ git co -b feature_branch master
# Implement your feature and tests
$ git add . && git commit
$ git push -u origin feature_branch
# Send us a pull request for your feature branch
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
File details
Details for the file django-review-1.10.0.tar.gz
.
File metadata
- Download URL: django-review-1.10.0.tar.gz
- Upload date:
- Size: 29.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6f3c9d73cafa6d90f918355bc3560f1ec3237de5eecf01e82378ba181e81ffc |
|
MD5 | f8b40798434f5c20962de48f3f469ea5 |
|
BLAKE2b-256 | d8fc80f2d44ca18f3d6a3f5117425d01438d3dcca8ff179134b7ce71f0d29e9e |