djangowagtaildjango-management-command

Wagtail "schedule_published_pages" Management Command


I was wondering why my scheduled posts were not working automatically in Wagtail, but I see in the documentation that a management command is needed to make this happen. I am unfamiliar with writing custom management commands, and I am wondering how to make the python manage.py publish_scheduled_pages command fire off automatically every hour?

Where would this code go in the document tree? Is there code that I just need to drop in and it runs from there? Or is something required on the server to run these commands on a schedule?

Any help would be appreciated. I couldn't find any existing code anywhere for this functionality in Wagtail and I'm wondering why the button is in the admin to schedule a post, but the functionality is not already built in?


Solution

  • You are probably familiar with management commands since python manage.py runserver and makemigrations and migrate are management commands.

    You can see all available commands with python manage.py -h

    publish_scheduled_pages should be called periodically. Form the Wagtail docs:

    This command publishes, updates or unpublishes pages that have had these actions scheduled by an editor. We recommend running this command once an hour.

    Periodically executing a command can be done in various ways. Via crontab is probably the most common. To edit the crontab:

    $ crontab -e
    

    Add (for every fist minute of the hour):

    0 * * * * python /path/to/your/manage.py publish_scheduled_pages --settings=your.settings