LINUX.ORG.RU

django произвольные свойства у объекта


0

0

Задача следующая.

Есть модель, допустим "Магазин". Есть редактируемый список свойтсв (модель "Свойства"). Каждое свойство может иметь как ограниченный набор значений (например: типы продаваемой продукции -- книги, фаллоимитаторы, овощи.), так и произвольное значение (кол-во этажей: 1,2,3,...). Надо сделать так, чтобы в админке джанги при добавлении/редактировании Магазинов можно было приделывать к объекту магазин разные атрибуты и их значения (выбирать селектом из ограниченного списка или вводить руками в инпут в случае неограниченного выбора значений).

Всю голову сломал.

Родил пока следующее:

[code] class Property(models.Model): name = models.CharField(u'Название свойства')

class PropertyValue(models.Model): property = models.ForeignKey(u'Свойство') value = models.CharField(u'Значение свойства')

class Shop(models.Model): name = models.CharField(u'Название магазина')

class ShopPropertyValue(models.Model): shop = models.ForeignKey(Shop, verbose_name = u'Магазин') property_value = models.ForeignKey(PropertyValue, blank = True, verbose_name = u'Значение свойства') explicit_value = models.CharField(u'Значение свойства')

[/code]

Соотв. не понимаю, как научить админку делать выбор при показе списка значений -- сначала выбираем Property, потом видим список значений у неё (PropertyValues where property=наша проперти). И потом при показе еще научить её смотреть в explicit_value, если property_value = 0.

Из самопальных вьюх со стороны морды я это сделать могу, а вот в админке не выходит..

Куда гуглить?


Собственно, никакой "коммерции" за этим не стоит, я просто изучаю джангу, потому и хочется всё сделать максимально стандартно, как минимум так как принято в джанго-коммьюнити.

kkw
() автор топика
Ответ на: комментарий от kkw

>Можно. Но хочется django-way :)

Раз можно, так и делай:) Админка джанги достаточно специфична, и подходит для быстрой разработки, либо для определенного вида сайтов, типа блогов или новостных сайтов. Для всех остальных случаев предлагается писать свою на основе этой, в джангобуке и в документации про это написано, что где и как.

И это, property - функция из стандартной библиотеки питона. Я бы переименовал во избежание.

it_was_anon
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.