Найти - Пользователи
Полная версия: динамическое создание полей модели
Начало » Django » динамическое создание полей модели
1
mc
Описываю модель, в которой есть много полей одинакового типа, создавать их в ручную лень =)
Можно ли как то создать их динамически? Например, так:
    desc = [
['test',u'Парковка'],
['test2',u'Кухня'],
]
for i in desc:
eval(i[0]) = models.CharField(max_length=255, verbose_name=i[1])
приведенный код не работает, ‘can’t assign to function call' =(
maxwell
# -*- 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])
Потом копипаст в models.py
mc
а динамически это ни как не сделать?
Ещё вопрос =) Как создать записи в БД согласно этим полям, syncdb их не создает, только south?
maxwell
mc, они потом в процессе работы будут меняться? Или набор полей заранее известен, просто их много?
Во-втором случае, лучше как описал я. В-первом, там надо постоянно синхронизировать модель с базой.

syncdb создает записи в БД, но лучше все-равно использовать south (довольно удобная штука, в случае если вдруг поменялась модель, а в базе уже есть 1000 записей и сносить таблицу/добавлять по-новой неохота)
inlanger
С такой задачей Вам нужны документно-ориентированные БД, например MongoDB. И часть данных хранить именно в этой БД.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB