Skip to main content

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.

Project details


Download files

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

Source Distribution

votes-1.0.1.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

votes-1.0.1-py2.py3-none-any.whl (14.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file votes-1.0.1.tar.gz.

File metadata

  • Download URL: votes-1.0.1.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for votes-1.0.1.tar.gz
Algorithm Hash digest
SHA256 09add1ab8a68556db04696da698ef6928d99bc49aa6be1f6a79bf56d07f879bc
MD5 263258a034e3a97948e3bf25ee43705c
BLAKE2b-256 4a29ff5077931b2b25b28bd31375f33e0cbaca0c872494ae647a69eebbf32b51

See more details on using hashes here.

File details

Details for the file votes-1.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for votes-1.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 de3c079d7cb8d65c36f2d98c1dd56900899e7ef20e696f72e44493dd766091eb
MD5 07e8eb20bbb0562c5c513dc550f5f5e7
BLAKE2b-256 11b210e363478657662f89f1f12077ee1c38a02e393f47f5aa3864f790d8878d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page