Форум сайта python.su
Описываю модель, в которой есть много полей одинакового типа, создавать их в ручную лень =)
Можно ли как то создать их динамически? Например, так:
desc = [
['test',u'Парковка'],
['test2',u'Кухня'],
]
for i in desc:
eval(i[0]) = models.CharField(max_length=255, verbose_name=i[1])
Офлайн
# -*- coding: utf-8 -*-
desc = [['test',u'Парковка'],
['test2',u'Кухня'],
]
for d in desc:
print '%s = models.CharField(max_length = 255, verbose_name=\'%s\')' % (d[0], d[1])
Офлайн
а динамически это ни как не сделать?
Ещё вопрос =) Как создать записи в БД согласно этим полям, syncdb их не создает, только south?
Офлайн
mc, они потом в процессе работы будут меняться? Или набор полей заранее известен, просто их много?
Во-втором случае, лучше как описал я. В-первом, там надо постоянно синхронизировать модель с базой.
syncdb создает записи в БД, но лучше все-равно использовать south (довольно удобная штука, в случае если вдруг поменялась модель, а в базе уже есть 1000 записей и сносить таблицу/добавлять по-новой неохота)
Офлайн
С такой задачей Вам нужны документно-ориентированные БД, например MongoDB. И часть данных хранить именно в этой БД.
Офлайн