Attachments are an optional feature of django-vox. In order to to use attachments, two things must be in order. First, you need to set them up on your models, and second you need to be using a backend that supports them (which is just email right now).

Setting up the Models

Adding attachments is a lot like adding notifications. Instead of the notification attribute on VoxMeta, you specify the attachments field

To add notifications to a model, change the parent class from django.db.models.Model to django_vox.models.VoxModel. Also, add VoxMeta inner class (much like django’s Meta) which contains one attribute, a tuple named notifications. Each item in the tuple should be a django_vox.models.VoxParam instance. The result might look something like:

class User(VoxModel):

    class VoxMeta:
        attachments = VoxAttachments(
            vcard=VoxAttach(attr='make_vcard', mime_string='text/vcard',
                label=_('Contact Info')),

        notifications = (

In this case, there are two attachment options. The first, get’s the file contents from User.make_vcard, and has a mime type of text/vcard. The second will get its contents from, and will get its mime type from whatever’s in User.photo_mimetype.

Once these have been added, attachment options should show up when editing templates in the admin.