Skip to main content
Help us improve Python packaging – donate today!

DRF Vote is a simple Django Rest Framework app to add ability to like/dislike a model.

Project Description

=============================
DRF Votes
=============================

.. image:: https://badge.fury.io/py/votes.png
:target: https://badge.fury.io/py/votes


DRF Vote is a simple Django Rest Framework app to add ability to like/dislike a model.

Blog
-------------

You can read more about it on my blog_

.. _blog: https://medium.com/tixdo-labs/vote-your-model-with-no-pain-9d7670b65bfd#.5q8jkl7xt.

Quickstart
----------


Note
----------
User must be logged-in to user user-specific apis.

1. Install votes::

pip install votes




2. Add ``'votes'`` to your ``INSTALLED_APPS`` setting like this::

INSTALLED_APPS = (
...
'votes',
)

3. Run ``python manage.py syncdb`` to create the vote models.


4. Declare vote field to the model you want to vote::

from votes.managers import VotableManager

class ArticleReview(models.Model):
...
votes = VotableManager()

5. Include votes url to your urls.py file::

from django.conf.urls import include
from django.conf.urls import url

from votes import urls

urlpatterns += [
url(r'^', include(urls)),
]

=====
DRF Vote
=====

This is extended version of repo django-vote_

.. _django-vote: https://github.com/Beeblio/django-vote

DRF Vote is a simple Django Rest Framework app to add ability to like/dislike a model.

You can read more about it on my blog post_

.. _post: https://medium.com/@3117Jain/vote-your-model-with-no-pain-9d7670b65bfd#.3zttxekr2

=====
How is it different ?
=====

- Modified to work with django rest framework.
- A new feature of disliking an object is added in this version.


APIs
-----------

/votes/up/
==========
Adds a new like or dislike vote to the object

* param: model, id, vote i.e. model=movies&id=359&vote=true
* vote=option[true for up-vote, false for down-vote, None for no-vote]

This api is used for both liking and disliking the object.
Send
vote=true for like
vote=false for dislike

/votes/down/
==========
Removes vote to the object

* param: model, id i.e. model=movies&id=359

/votes/exists/
============
Check if the user already voted the object

* param: model, id i.e. model=movies&id=359

/votes/all/
=========
return all instances voted by user

* param: model, id i.e. model=movies&id=359

/votes/count/
=======
Returns the number of votes for the object

* param: model, id i.e. model=movies&id=359

/votes/users/
=======
Returns a list of users who voted and their voting date

* param: model, id i.e. model=movies&id=359

/votes/likes/
=======
Returns the number of likes and dislikes for the object.

* param: model, id i.e. model=movies&id=359



Running Tests
--------------

Does the code actually work?

::

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements-test.txt
(myenv) $ python runtests.py

Credits
---------

Tools used in rendering this package:

* Cookiecutter_
* `cookiecutter-pypackage`_

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage




History
-------

0.1.0 (2016-02-01)
++++++++++++++++++

* First release on PyPI.

Release history Release notifications

This version
History Node

1.0.1

History Node

0.9.8

History Node

0.9.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
votes-1.0.1-py2.py3-none-any.whl (14.2 kB) Copy SHA256 hash SHA256 Wheel 3.5 Apr 6, 2016
votes-1.0.1.tar.gz (12.5 kB) Copy SHA256 hash SHA256 Source None Apr 6, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page