В настоящее время у нас есть система инвентаризации для наших сотрудников. Он содержит ноутбуки, телефоны, но также эргономичные стулья, холодильники или программное обеспечение лицензии ... Так что очень разные вещи, которые администраторы могут создавать/читать/ обновление/удаление.Кодирование системы инвентаризации с полиморфными элементами и управляемыми типами товаров
После выполнения версии, полностью основанной на интерфейсе администратора, я отказался от , потому что это не обеспечило достаточной гибкости. Поэтому я закатил полную пользовательскую версию, но на мой вкус слишком много кода ... это боль в ногах.
Некоторые из проблем, я сталкиваются включают в себя:
позволяя администраторам добавлять свои собственные типы элементов через интерфейс, например, : ноутбук, телевизор, ... так в основном, как если бы они могли сами создавать модели Django с набором атрибутов через интерфейс. Также типы элементов являются иерархическими, например. ТВ и ноутбуков являются подклассами ElectronicItem, что, в свою очередь, является подклассом Item, ...
полиморфизм: при перечислении всех элементов, они должны быть в курсе какого типа они это для того, чтобы искать/фильтровать список с помощью javascript, а также генерировать URL-адреса для подробного просмотра товара.
обновление некоторых атрибутов через Ajax, например. ноутбуки имеют лицензии . На странице подробной информации о ноутбуке у меня есть «менеджер» javascript, до связать/отсоединить лицензии на этом ноутбуке.
Так что мне было интересно, есть ли у кого-нибудь предложение о том, что использовать! I особенно интересно, может ли помочь мне одно из приложений CMSs django, , потому что это звучит как функциональность, которую могла бы предоставить CMS! Я даже думал о базе данных NOSql ... но это звучит как сложные решения.
На самом деле я не первый раз сталкиваюсь с этой проблемой полиморфизма с Django, и я до сих пор не нашел хорошего решения. Поэтому я вроде надеюсь, что это то, что я полностью пропустил, и что кто-то может показать мне свет!
Привет, я всегда испытывал искушение работать с наследованием в производство, но я никогда не осмеливался. На самом деле вам удобно с наследованием. Можете ли вы поделиться некоторым примером (по модели с наследованием и некоторыми моделями запросов: продукт, который представляет собой рубашку или куртку. Продукт с ценой> X и тип получения, ...). Большое спасибо! – danihp
django-model-utils выглядит очень хорошо, я не знал об этом! Это решило бы проблему полиморфизма, но я не думаю, что это решило бы проблему «добавить свои собственные модели через интерфейс». Я посмотрю в Satchmo. – sebpiq
@sebpiq Вы можете использовать [создание динамической модели] (https://code.djangoproject.com/wiki/DynamicModels) для динамического создания подклассов «Продукт» из данных, входящих в форму db. Но он начинает быть немного сложным :) –