Skip to main content

Django Comment app. It can be associated with any given model.

Project description

python django Coverage Test docs contributors licence downloads pypi tag Django-comment-dab Release Date Commits since latest release for a branch develop

django-comments-dab

Thanks https://www.pythonanywhere.com/

Here is a live demo

Full Documentation

https://github.com/abhiabhi94/Comment/blob/develop/docs/_static/img/comment.gif

Content:

Introduction

dab stands for Django-Ajax-Bootstrap PS: Ajax and JQuery are not used anymore since v2.0.0 Vanilla JS and fetch API is used instead.

django-comments-dab is a commenting application for Django-powered websites.

It allows you to integrate commenting functionality with any model you have e.g. blogs, pictures, video etc…

List of actions that can be performed:

  1. Post a new comment. (v2.0.0 authenticated and anonymous users)

  2. Reply to an existing comment. (v2.0.0 authenticated and anonymous users)

  3. Edit a comment. (authenticated user comment owner)

  4. Delete a comment. (authenticated user comment owner and admins)

  5. React to a comment. (authenticated users) Available reactions are LIKE and DISLIKE # open PR if you would like to have more reactions

  6. Report (flag) a comment. (authenticated users)

  7. Delete flagged comment. (admins and moderators)

  8. Resolve or reject flag. This is used to revoke the flagged comment state (admins and moderators)

  9. Follow and unfollow thread. (authenticated users)

  • All actions are done by Fetch API since V2.0.0

  • Bootstrap 4.1.1 is used in comment templates for responsive design.

Installation

Requirements:

  1. django>=2.1

  2. djangorestframework # only for the API Framework

  3. Bootstrap 4.1.1

Installation:

Installation is available via pip

$ pip install django-comments-dab

or via source on github

$ git clone https://github.com/abhiabhi94/Comment.git
$ cd Comment
$ pip install .

Comment Settings and urls:

  1. Add comment to installed_apps in the settings.py file. It should be added after django.contrib.auth.

  2. LOGIN_URL shall be defined in the settings.

settings.py should look like this:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    ...
    'comment',
    ..
)

LOGIN_URL = 'login'  # or actual url

In urls.py:

urlpatterns = patterns(
    path('admin/', admin.site.urls),
    path('comment/', include('comment.urls')),
    ...
    path('api/', include('comment.api.urls')),  # only required for API Framework
    ...
)

Migrations:

Migrate comment app:

$ python manage.py migrate comment

Setup

Step 1 - Connecting comment model with the target model

In models.py add the field comments as a GenericRelation field to the required model.

PS: Please note that the field name must be comments NOT comment.

E.g. Post model, as shown below:

from django.contrib.contenttypes.fields import GenericRelation

from comment.models import Comment

class Post(models.Model):
    author = models.ForeignKey(User)
    title = models.CharField(max_length=200)
    body = models.TextField()
    # the field name should be comments
    comments = GenericRelation(Comment)

Step 2 - Adding template tags:

render_comments tag uses 2 required and 1 optional args:

  1. Instance of the targeted model. (Required)

  2. Request object. (Required)

  3. oauth. (optional - Default is false)

Usage

1. Basics usage:

include_bootstrap tag is for bootstrap-4.1.1, if it’s already used in the project, get rid of this tag.

In the template (e.g. post_detail.) add the following template tags where obj is the instance of post model.

{% load comment_tags %}  {# Loading the template tag #}
{% render_comments obj request %}  {# Render all the comments belong to the passed object "obj" #}
{% include_bootstrap %} {# Include bootstrap 4.1.1 - remove this line if BS is already used in your project #}

2. Advanced usage:

For advanced usage and other documentation, you may read the Documentation or look at the docs directory in the repository.

Example

You can play with the example app using local virtual environment

$ git clone https://github.com/abhiabhi94/Comment.git  # or clone your forked repo
$ cd Comment
$ python3 -m venv local_env  # or any name. local_env is in .gitignore
$ export DEBUG=True
$ source local_env/bin/activate
$ pip install -r test/example/requirements.txt
$ python manage.py migrate
$ python manage.py create_initial_data
$ python manage.py runserver

Or run with docker

$ git clone https://github.com/abhiabhi94/Comment.git  # or clone your forked repo
$ cd Comment
$ docker-compose up

Login with:

username: test

password: test

The icons are picked from Feather. Many thanks to them for the good work.

Email’s HTML template is used from https://github.com/leemunroe/responsive-html-email-template

Contributing

For contributing, please see the guidelines at Contributing

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

django_comments_dab-3.0.0.tar.gz (95.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_comments_dab-3.0.0-py3-none-any.whl (141.6 kB view details)

Uploaded Python 3

File details

Details for the file django_comments_dab-3.0.0.tar.gz.

File metadata

  • Download URL: django_comments_dab-3.0.0.tar.gz
  • Upload date:
  • Size: 95.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for django_comments_dab-3.0.0.tar.gz
Algorithm Hash digest
SHA256 380c62460a1f0e7ad564a48db25f6a9c496a6ed1e7b927e6a6cd23f2414ae48b
MD5 246785f5fd0b378a4201137d7e1ec2a7
BLAKE2b-256 93d5759fcf80481c1439eadcfd1cd3a44d1bb3c11ccc93a1dbc4ba5fd5b62047

See more details on using hashes here.

File details

Details for the file django_comments_dab-3.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_comments_dab-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 10de414da45438aa96504b7e842914490f5f665904a527e8618a4e899d98621d
MD5 c320ed203cf63b72d356febf4a76649b
BLAKE2b-256 d2a136308383f661926924edafeb01947ff4135e244285e3aecda57f18267b6e

See more details on using hashes here.

Supported by

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