Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

pypm install django-infuse

How to install django-infuse

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install django-infuse
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
0.3 Available View build log
Depended by
Lastest release
version 0.3 on Jan 9th, 2014

Series of Class based mixins. Requires Django 1.4s use of PermissionDenied exception.


pip install django-infuse

Currently Supported Mixins

  • Permission Required
  • Staff Required
  • Super User required
  • Login Required
  • Group Required


### Login Required Mixin

Inherit the mixin you want to use and add any additional (optional) params.

from infuse.auth.permissions import LoginRequiredMixin

class MyLoginProtectedView(LoginRequiredMixin, ListView):

# If login_url is not the url you want to redirect # users to, set one here.

login_url = "/my/new/url/"

# Do the rest of your stuff.....

### Group Required Mixin

The only other different one is GroupRequiredMixin

from infuse.auth.permissions import GroupRequiredMixin

class MyGroupRequiredView(GroupRequiredMixin, ListView):

# Uses login_required, so you can optionally pass in # a url just like LoginRequired.

# You MUST set a group, Infuse will throw an exception # if you do not.

group = "My Awesome Group"

### Permission Required Mixin

Original work by Kenneth Love and Chris Jones. Modified to always raise PermissionDenied

from infuse.auth.permissions import PermissionRequiredMixin

class PermissionRequiredView(PermissionRequiredMixin, ListView):
# Permission to require permssion_required = 'model.can_do_something'

### Save and Continue Form Wizard

This mixin is still very much in a alpha status. The django form wizard does not support the concept of 'Finish Later' or any built in ability to save the form 'half done'. This mixin provides a way for developers to add a 'Finish Later' functionality to their form wizard.

In order to use the 'Finish Later' functionality you must add a button/input element on your form wizard templates and name it 'save_only'

<input type='submit' name='save_only' value='Finish Later'>

Next inherit the SaveAndContinue Mixin

from infuse.wizard.mixins import SaveAndContinueWizard

class MyFinishLaterWizard(SaveAndContinueWizard):

# This url is where the user will be redirected to when # they click the 'Finish Later' button save_only_url = reverse_lazy('wheretogowhenuserssaves')

In addition to the save_only_url that you are required to set, you may also provide the following methods:

def post_save_only(self):
def process_wizard_goto_step(self, wizard_goto_step):
if wizard_goto_step and wizard_goto_step in self.get_form_list():

self.storage.current_step = wizard_goto_step form = self.get_form(

System Message: ERROR/3 (<string>, line 93)

Unexpected indentation.
data=self.storage.get_step_data(self.steps.current), files=self.storage.get_step_files(self.steps.current))

System Message: WARNING/2 (<string>, line 95)

Block quote ends without a blank line; unexpected unindent.

return self.render(form)

def pre_process(self, form):
def additional_file_processing(self):
  • post_save_only - Called when save_only is executed. Provides a way to hook into the save_only processor
  • pre_process - Do any pre processing before forms are attempted to save. Can be used to setup formsets.
  • additional_file_processing - Do any additional file processing. I use this to make sure that files saved to AWS are saved

System Message: WARNING/2 (<string>, line 107)

Bullet list ends without a blank line; unexpected unindent.

with the correct file name. * process_wizard_goto_step - Allows you to override the default behaviour of going between steps.

This particular mixin is extreamly powerful, but is in a constantly changing state. If you are using it, please provide some feedback of how and what your using it for, as well as any improvements you have.

Subscribe to package updates

Last updated Jan 9th, 2014

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.