Skip to content

SergeyBurma/django-updown

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fork note!!!

This fork was made to add ability of adding any score, not just -1/1. The reason is the need to stronger raise or lower rating of any content for moderators .

django-updown

Travis CI build status

django-updown is a simple Django application for adding youtube like up and down voting.

Changelog

0.3:

  • Removed south as dependency
  • Small cleanups (thanks to gwrtheyrn)

0.2:

  • Updated related_name to avoid namespace clashes.
  • Added south as dependency

Usage

Add "updown" to your INSTALLED_APPS then just add a RatingField to your existing model and go:

from django.db import models
from updown.fields import RatingField

class Video(models.Model):
    # ...other fields...
    rating = RatingField()

You can also allow the user to change his vote:

class Video(models.Model):
    # ...other fields...
    rating = RatingField(can_change_vote=True)

Now you can write your own view to submit ratings or use the predefinded:

from updown.views import AddRatingFromModel

urlpatterns = patterns("",
    url(r"^(?P<object_id>\d+)/rate/(?P<score>[\d\-]+)$", AddRatingFromModel(), {
        'app_label': 'video',
        'model': 'Video',
        'field_name': 'rating',
    }, name="video_rating"),
)

To submit a vote just go to video/<id>/rate/(1|-1). If you allowed users to change they're vote, they can do it with the same url.

Troubleshooting

If you previously used this app you may get to a point where migrations are failing. Try:

./manage.py migrate updown --fake 0001

to skip the initial migration. After this apply the migrations again:

./manage.py migrate updown

Thanks

Thanks a lot to django-ratings for the inspiring code

About

Simple youtube like up and down rating app for Django.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%