Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Django + Fighting Spam Made Easy

Project Description

Django + Flagging Spam Made Easy


The full documentation is at


  • For Django 1.8+
  • For Python 2.7/3.3+
  • Direct foreign key from the model to the spam report. Avoiding content types and using explicit foreign keys makes for less kludgy databases.
  • Powered by conventions used all over Django:
    • Have the appropriate __str__() or __unicode__() method on your models.
    • Flaggable models should have get_absolute_url() methods.


Install dj-spam:

pip install dj-spam

Configure it into your project:

INSTALLED_APPS += ['spam', ]
url(r'^spam/', include('spam.urls', namespace='spam')),

For any model you want to flag:

from spam import Spammable

class MyModel(Spammable, models.Model):
    # Define your model here. Spammable attaches
    #   the spam_flag field to your model as a ManyToManyField.

    def get_absolute_url(self):
        # Not required, but it allows dj-spam to link back to the offending
        # content in the report spam view.
        return 'absolute link to model detail view'

Run Migrations

./manage migrate

Then, in the model’s related view:

from spam import SpammableMixin

class MyModelDetailView(SpammableMixin, DetailView):
    class = MyModel

This empowers you with the view method spam_report_url which you can use to define the URL to the reporting form:

<a href="{{ view.spam_report_url }}">Report Spam</a>


dj-spam comes with a simple admin view.

emailing managers

dj-spam emails settings.MANAGERS every time something is flagged. If you don’t set settings.MANAGERS, it will email settings.ADMINS.


0.2.0 (2-15-07-29)

  • Added admin functionality.
  • Fixed broken spam report form.
  • Email of managers when content is flagged as spam.

0.1.0 (2-15-07-28)

  • First release on PyPI.

Release History

This version
History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(10.9 kB) Copy SHA256 Hash SHA256
Wheel 3.4 Jul 30, 2015
(8.5 kB) Copy SHA256 Hash SHA256
Source None Jul 30, 2015

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers