Skip to main content

Django + Fighting Spam Made Easy

Project description

https://badge.fury.io/py/dj-spam.png https://travis-ci.org/pydanny/dj-spam.png?branch=master

Django + Flagging Spam Made Easy

Documentation

The full documentation is at https://dj-spam.readthedocs.org.

Features

  • 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.

Quickstart

Install dj-spam:

pip install dj-spam

Configure it into your project:

# settings.py
INSTALLED_APPS += ['spam', ]
# urls.py
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.

    @models.permalink
    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>

admin

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.

History

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.

Project details


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
dj_spam-0.2.0-py2.py3-none-any.whl (10.9 kB) Copy SHA256 hash SHA256 Wheel 3.4
dj-spam-0.2.0.tar.gz (8.5 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page