Commands

django-disqus provides the following management commands.

disqus_dumpdata

Outputs a list of comments in the JSON format.

If neither of the --filter or --exclude options are used, the output will include approved, deleted and spam comments. Each comment will have the data about its associated Author, Thread and Forum included.

Example output:

[{
    "status": "approved",
    "has_been_moderated": false,
    "thread": {
        "category": "78805",
        "allow_comments": true,
        "forum": "71225",
        "title": "Passing MEDIA_URL in Django's 500 error view",
        "url": "http://arthurkoziel.com/2009/01/15/passing-mediaurl-djangos-500-error-view/",
        "created_at": "2009-01-17T17:29",
        "slug": "passing_media_url_in_django39s_500_error_view_arthur_koziels_blog",
        "hidden": false,
        "identifier": [],
        "id": "102172011"
    },
    "forum": {
        "id": "71225",
        "created_at": "2009-01-17 05:48:00.863075",
        "shortname": "arthurkozielsblog",
        "name": "Arthur Koziel\u2019s Blog",
        "description": ""
    },
    "created_at": "2009-11-30T12:48",
    "is_anonymous": true,
    "points": 0,
    "message": "Thanks for the article!",
    "anonymous_author": {
        "url": "http://example.org/",
        "email_hash": "j198m7123m12837m12893m7128121u23",
        "name": "John",
        "email": "john@example.org"
    },
    "ip_address": "12.345.678.11",
    "id": "12345678",
    "parent_post": null
}]

Options:

  • --indent: Specifies the indent level to use when pretty-printing output. Example: ./manage.py dumpdata --indent=4
  • --filter: Type of entries (approved, spam, killed) that should be returned. Types can be combined by separating them with a comma. Example: ./manage.py dumpdata --filter=spam,killed
  • --exclude: Type of entries (approved, spam, killed) that should be excluded. Types can be combined by separating them with a comma. Example: ./manage.py dumpdata --exclude=spam,killed

disqus_export

Export comments from contrib.comments to DISQUS.

Before you run this command, make sure that django.contrib.comments and django.contrib.sites are listed in your project’s INSTALLED_APPS. You also need to change the domain of your Site from example.org to your real domain.

The comment’s associated content object must have the following two methods:

  • get_absolute_url: Should return the URL of an object. For example: /2009/10/10/foo. This should not include the domain name
  • __unicode__: Unicode representation of the object

The command will export all comments that have the is_public attribute set to True and is_removed set to False. To test which comments will be exported, you can pass the --dry-run option.

Options:

  • -d/--dry-run: Does not export any comments, but merely outputs the comments which would have been exported. Example: ./manage.py disqus_export --dry-run
  • -v/--verbosity: Specify the amount of information that should be printed to the console. A verbosity of 0 will output nothing. The default verbosity is 1 and print the title of the comments that are exported. Example: ./manage.py disqus_export --verbosity=0
  • -s/--state-file: Specify the filepath where the export command should save its state (the id of the last exported comment) into. This makes it possible to resume interrupted exports.