Skip to content
A extendable category app using django-mptt for django-shop
Python HTML
Find file
Latest commit 779c684 May 3, 2015 @fivethreeo fix my brain instead
Failed to load latest commit information.
shop_categories fix my brain instead May 3, 2015
.gitattributes initial commit Jul 12, 2012
.gitignore initial commit Jul 12, 2012
.travis.yml Oct 31, 2013
LICENSE.txt initial commit Jul 12, 2012 more tests Jul 13, 2012
README.rst Update README.rst Oct 30, 2013 something is up Oct 31, 2013
requirements.txt correct commands Jul 15, 2012 test runner travis and correct ath Jul 12, 2012



A extendable category app using django-mptt for django-shop.


For the current stable version:

pip install django-shop-categories

For the development version:

pip install -e git+git://

Running tests:

git clone git://
cd django-shop-categories
virtualenv test_env
source ./test_env/bin/activate
pip install -r requirements.txt


Add shop_categories and treeadmin to settings.INSTALLED_APPS.

Set SHOP_PRODUCT_MODEL to shop_categories.models.defaults.product.default.CategoryProduct.

In your add this before your shop patterns:

urlpatterns += patterns('',
    url(r'^catalog/', include('shop_categories.urls')),

Then run: syncdb

Extending the Category model

In your own app make a models dir with and a dir, like so:


Note: Do not import the model from in, the model should NOT be in a "real" models module as this will cause the overridden Category model to be defined twice.


from django.db import models
from shop_categories.models.defaults.category.base import ProductCategoryBase

class Category(ProductCategoryBase):

    image = models.ImageField(upload_to='categoryimages/', null=True, blank=True)

    class Meta:
        abstract = False
        app_label = 'app'

Set SHOP_CATEGORIES_CATEGORY_MODEL to ('app.models.category.Category, 'app')

Register your custom category model in

from shop_categories.models import Category
from shop_categories.admin import ProductCategoryAdmin, ProductCategoryAdmin)

Then, assuming your Product model is not already synced, run: syncdb

Extending the Product model

When extending Product models in your shop make sure they subclass from shop_categories.models.defaults.product.base.CategoryProductBase to add the Category Foreignkey and M2M fields.

Example implementation

An example of a django-shop with django-shop-categories can be found here:

Something went wrong with that request. Please try again.