django-flaggit enables content flagging.
pip install django-flaggit
-
Add
flaggit
to yourINSTALLED_APPS
-
Include
flaggit.urls
into your URLs if you plan on using the view and template tag:urlpatterns = patterns('', url('^', include('flaggit.urls')), )
Follow above steps and run
python manage.py test flaggit
flaggit.models.Flag
flaggit.models.FlagInstance
flaggit.utils.flag(obj, user=None, ip=None, comment=None)
:
Flag anobj
, returns aFlagInstance
-
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)
{% load flaggit_tags %}
{% flag_form object %}
{% flag_form object "your/custom/template.html" %}
-
{% flag_form object %}
:
Renders a form to flagobject
- -
`{% flag_form object "your/custom/template.html" %}:
Renders the form with a custom template.