skip to navigation
skip to content

django-weed 0.1

Latest Version: 0.2.2


This project provides [Weed-FS]( integration with Django by giving model field.


This project is built on top of [pyweed]( project which provides Python implementation of API to Weed-FS.

Thus dependencies are:

  • configured Weed-fS
  • pyweed module
  • django (tested only with 1.6 now, but should work with early releases as well)


pip install django-weed


pip install

How to use

django-weed provides WeedFSFileField model field, so if you have regular FileField in your models:

class Book(models.Model):
    name = models.CharField(_("Name"), max_length=255)
    content = models.FileField(_("Content"), upload_to=settings.CONTENT_URL)

you can easily convert this FileField to WeedFSFileField:

from djweed.db_fields import WeedFSFileField

class Book(models.Model):
    name = models.CharField(_("Name"), max_length=255)
    content = WeedFSFileField(_("Content"))

Note: there is no sense in upload_to keyword for Weed-FS as it uses flat file id structure.

After that you can use content almost as before.

>>> book = Book.objects.get(id=1)
>>> from django.core.files import File
>>> book.content = File(open('/tmp/book_content_1.txt'))
>>> Book.objects.filter(id=1).update(content=File(open('/tmp/book_content_2.txt')))
>>> book.content.size
>>> book.content.storage_url,1f23101a
>>> book.content.verbose_name
>>> book.content.content[:41]
u"These are first words in the book content"

Furthermore, django-weed has integration with Nginx’s X-Accel-Redirect so you can safely serve data from Weed-FS. You have to add djweed to your INSTALLED_APPS in and assign url in to djweed.urls, i.e.:

(r'^media/', include('djweed.urls')),

There is no special Nginx configuration as it supports X-Accel-Redirect out of the box and the link will point to the Weed-FS volume.

Once you configured djweed you could get url from content:

>>> book.content.url
File Type Py Version Uploaded on Size
django-weed-0.1.tar.gz (md5) Source 2014-05-08 3KB