https://github.com/malisit/django-likeit
A simple app for Django that enables users to like and unlike any object/item within any model. It generates a like button for your objects.
https://github.com/malisit/django-likeit
django django-application favorite like
Last synced: 9 days ago
JSON representation
A simple app for Django that enables users to like and unlike any object/item within any model. It generates a like button for your objects.
- Host: GitHub
- URL: https://github.com/malisit/django-likeit
- Owner: malisit
- License: mit
- Fork: true (streema/django-favit)
- Created: 2014-09-15T01:59:14.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2018-10-22T17:58:51.000Z (almost 7 years ago)
- Last Synced: 2025-01-17T05:19:50.622Z (9 months ago)
- Topics: django, django-application, favorite, like
- Language: Python
- Homepage:
- Size: 36.1 KB
- Stars: 10
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# django-likeit
A simple app for Django that enables users to like and unlike any object/item within any model.
It's developed on Python 3.5 & Python 3.6 for Django 1.10 and later.## Installation
* Install django-likeit in your vilrtual env:
```
pip install django-likeit
```* Add the app to your settings.py
```python
INSTALLED_APPS = [
...
"like",
...
]
```* Add likeit urls to your project's `urls.py` file:
```python
from django.conf.urls import url, includeurlpatterns = [
...
url(r'^like/', include('like.urls')),
...
]
```* Migrations:
```
python manage.py makemigrations like
python manage.py migrate
```* Make sure you have jQuery ajax CSRF configuration right, and also you included Font Awesome in your HTML.
## Usage:
### Template tags:
* Get the liked objects for a given user:
```python
{% with user_likes "app_label.model" as like_list %}
{% for like_obj in like_list %}
{# do something with like_obj #}
{% endfor %}
{% endwith %}
```* Given an object `obj` you may show it like count like this:
```python
Like Count {{ obj|likes_count }}
```* Get Like instance for an object (obj) and a user (user)
```python
{% with obj|get_like_for:user as like_object %}
...
{% endwith %}
```* Like Button for an object `my_obj`:
```python
{% like_button my_obj %}
```### Likes Manager
* Create a Like instance for a user and object:
```python
>>> from django.contrib.auth.models import User
>>> from music.models import Song
>>> user = User.objects.get(username='jdoe')
>>> song = Song.objects.get(pk=1)
>>> like = Like.objects.create(user, song)
```or:
```python
>>> like = Like.objects.create(user, 1, Song)
```or:
```python
>>> like = Like.objects.create(user, 1, "music.Song")
```* Get the objects liked by a given user:
```python
>>> from django.contrib.auth.models import User
>>> user = User.objects.get(username='jdoe')
>>> Like.objects.for_user(user)
>>> [, , ]
```* Now, get user liked objects belonging to a given model:
```python
>>> from django.contrib.auth.models import User
>>> from music.models import Song
>>> user = User.objects.get(username='jdoe')
>>> Like.objects.for_user(user, model=Song)
>>> [, , ]
```* Get the liked object instances of a given model liked by any user:
```python
>>> from music.models import Song
>>> Like.objects.for_model(Song)
>>> [, , ]
```* Get a Like instance for a given object and user:
```python
>>> from django.contrib.auth.models import User
>>> from music.models import Song
>>> user = User.objects.get(username='jdoe')
>>> song = Song.objects.get(pk=1)
>>> like = Like.objects.get_like(user, song)
```* Get all Like instances for a given object
```python
>>> from music.models import Song
>>> song = Song.objects.get(pk=1)
>>> like = Like.objects.for_object(song)
```