使用django mptt的django商店可扩展类别应用程序
django-shop-categories的Python项目详细描述
一个使用django mptt的django商店扩展类应用程序。
安装
对于当前稳定版本:
pip install django-shop-categories
对于开发版本:
pip install -e git+git://github.com/fivethreeo/django-shop-categories.git#egg=django-shop-categories
运行测试:
git clone git://github.com/fivethreeo/django-shop-categories.git cd django-shop-categories virtualenv test_env source ./test_env/bin/activate pip install -r requirements.txt python runtests.py
配置
将shop_categories添加到settings.INSTALLED_APPS
将SHOP_PRODUCT_MODEL设置为shop_categories.models.defaults.product.default.CategoryProduct
在url.py中,在您的店铺模式之前添加。
然后运行:urlpatterns += patterns('',
url(r'^catalog/', include('shop_categories.urls')),
)
manage.py syncdb
扩展类别模型
在您自己的应用程序中,使用init.py和category.py目录创建一个models目录,如下所示:
app/models/__init__.py app/models/category.py
注意:不要从category.py的init.py中导入模型,该模型不应该在“真实”模型模块中,因为这将导致重写的类别模型被定义两次。
在category.py中:
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'
将SHOP_CATEGORIES_CATEGORY_MODEL设置为app.models.category.Category
在admin.py中注册自定义类别模型:
from shop_categories.models import Category from shop_categories.admin import ProductCategoryAdmin admin.site.register(Category, ProductCategoryAdmin)
然后,假设您的产品型号尚未同步,请运行:
manage.py syncdb
扩展产品型号
在您的商店中扩展产品模型时,请确保它们是shop_categories.models.defaults.product.base.CategoryProductBase的子类,以添加category foreignkey和m2m字段。
示例实现
有django商店类别的django商店的示例可以在这里找到:https://github.com/fivethreeo/django-shop-example