Вы смотрели на код из других проектов с похожим подходом?Не уверен, что этот способ соответствует вашим потребностям, но, на мой взгляд, стоит обратить внимание на код django-shop .
Эта структура предоставляет базовую логику, позволяя вам предоставлять собственную логику там, где это необходимо.
настройка с помощью моделей
например, см. productmodel.py
#==============================================================================
# Extensibility
#==============================================================================
PRODUCT_MODEL = getattr(settings, 'SHOP_PRODUCT_MODEL',
'shop.models.defaults.product.Product')
Product = load_class(PRODUCT_MODEL, 'SHOP_PRODUCT_MODEL')
настройка с помощью логики / URL
например, см. simplevariation-plugin магазина Расширяет логику корзины, поэтому подключается через urlpattern:
(r'^shop/cart/', include(simplevariations_urls)),
(r'^shop/', include(shop_urls)),
и расширяет представления: ...
from shop.views.cart import CartDetails
class SimplevariationCartDetails(CartDetails):
"""Cart view that answers GET and POSTS request."""
...
Фреймворк предоставляет несколько точек для подключения, упомянутый выше плагин simplevariation дополнительно предоставляет модификатор cart:
SHOP_CART_MODIFIERS = [
...
'shop_simplevariations.cart_modifier.ProductOptionsModifier',
...
]
Я беспокоюсь, что это объяснение не очень понятно, трудно кратко изложить этоконцепция.Но взгляните на проект django-shop и некоторые его расширения: экосистема