Привет Stackoverflow люди,
У меня есть определение модели, которое является довольно монотонным, оно включает поля для ячеек от 1 до 50.
Для подтверждения концепции я написал это от руки, но должен быть лучший способ автоматизировать определение модели и сохранить код в хорошем и аккуратном состоянии.
Пока я сделал это следующим образом:
class Bins(models.Model):
p1 = models.DecimalField(_('bin 1'), max_digits=6, decimal_places=2)
p2 = models.DecimalField(_('bin 2'), max_digits=6, decimal_places=2)
p3 = models.DecimalField(_('bin 3'), max_digits=6, decimal_places=2)
...
p50 = ...
На Django wiki я нашел сводку для определений динамических моделей, но кажется, что в определении не допускаются циклы:
Я пробовал код ниже, но я получаю сообщение об ошибке, что MAX_BIN = 2 - неверный синтаксис.
Я понимаю ошибку, которую не могу повторить по полю, как я пытался.
Bins = type('Bins', (models.Model,), {
MAX_BIN = 50
for i in range(MAX_BIN):
name_sects = ["p", str(i)]
"".join(name_sects): model.DecimalField(_("".join([bin ', str(i)])),
max_digits=6, decimal_places=2)
})
Возможно ли вообще такое динамическое определение класса?
Если да, то как лучше определить класс?
Спасибо за вашу помощь!