Говнокод в связи с тем, что:
В модели "Accessories" должно быть не менее 5 материалов (модель "Accessories_material"), в модели "Accessories" выбирается материал (поле "accessories_material1" ) и заполняется поле расход материала (поле "accessories_materialr1"). При сохранении формы модели "Accessories" происходит списание (уменьшение) материала:
if f.is_valid():
if accessories_id:
f.save()
else:
accessories = f.save(commit=False)
accessories.posted_by = request.user
if accessories.accessories_material:
accessories.accessories_material.accessories_material_col_all = ((accessories.accessories_material.accessories_material_col_all) - (accessories.accessories_material_col_ex))
accessories.accessories_material.save()
accessories.save()
...... и тд
модель
"Accessories_materia":
(в модель вносится наименование и приход материала, через форму
"Accessories"
заполняется поле остатки материала
"accessories_material_col_all"
(приход
(Accessories_materia -> accessories_material_col)
минус расход
(Accessories -> accessories_materialr1)
= остаток материала
(Accessories_materia -> accessories_material_col_all.)
class Accessories_material(models.Model):
accessories_material_date = models.DateField(u"Дата прихода")
accessories_material = models.CharField("Материал:", max_length=100)
accessories_material_col = models.IntegerField(u"Приход Кол-во", default=0)
accessories_material_col_all = models.IntegerField(u"Остатки Кол-во", default=0)
class Accessories(models.Model):
created_on = models.DateTimeField(u"Дата создания", auto_now_add=True)
accessories_plot = models.ForeignKey(Accessories_plot, verbose_name='Участок')
accessories_material1 = models.ForeignKey(Accessories_material)
accessories_materialr1 = models.IntegerField(u"Расход Кол-во1")
accessories_material2 = models.ForeignKey(Accessories_material)
accessories_materialr2 = models.IntegerField(u"Расход Кол-во2")
accessories_material3 = models.ForeignKey(Accessories_material)
accessories_materialr3 = models.IntegerField(u"Расход Кол-во3")
accessories_material4 = models.ForeignKey(Accessories_material)
accessories_materialr4 = models.IntegerField(u"Расход Кол-во4")
accessories_material5 = models.ForeignKey(Accessories_materia)
accessories_materialr5 = models.IntegerField(u"Расход Кол-во5")
Понимаю что ГОВНОАДОВЫЙ КОД... но для это здесь и написал, чтобы попросить совета как улучшить код. Как с помощью ManyToMany списывать кол-во материала???