Skip to content
Content flagging for Django
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
flaggit
LICENCE
MANIFEST.in
README.md
README.rst
setup.py

README.md

django-flaggit

django-flaggit enables content flagging.

Installation

pip install django-flaggit

Usage:

  • Add flaggit to your INSTALLED_APPS

  • Include flaggit.urls into your URLs if you plan on using the view and template tag:

      urlpatterns = patterns('',
      	url('^', include('flaggit.urls')),
      )
    

Test

Follow above steps and run

python manage.py test flaggit

API

Models

  • flaggit.models.Flag
  • flaggit.models.FlagInstance

Utils

  • flaggit.utils.flag(obj, user=None, ip=None, comment=None):
    Flag an obj, returns a FlagInstance

Signals

  • flaggit.signals.flagged(flag):
    Sent when something is flagged. Can be used to notify moderators.

  • flaggit.signals.review(flag):
    Sent when something is in review.

  • flaggit.signals.rejected(flag):
    Sent when some content was rejected.

  • flaggit.signals.approved(flag):
    Sent when some content was approved.

Here's a template you can copy paste:

import flaggit

def handle_flagged(sender, flag, created = False, **kwargs):
	if created:
		# send emails
		pass
	else:
		pass

def handle_review(sender, flag, **kwargs):
	pass
	
def handle_rejected(sender, flag, **kwargs):
	flag.content_object.delete()
	flag.delete()

def handle_approved(sender, flag, **kwargs):
	pass

flaggit.signals.flagged.connect(handle_flagged)
flaggit.signals.review.connect(handle_review)
flaggit.signals.rejected.connect(handle_rejected)
flaggit.signals.approved.connect(handle_approved)

Template tags

{% load flaggit_tags %}
{% flag_form object %}
{% flag_form object "your/custom/template.html" %}
  • {% flag_form object %}:
    Renders a form to flag object-

  • `{% flag_form object "your/custom/template.html" %}:
    Renders the form with a custom template.


@flashingpumpkin

You can’t perform that action at this time.