Я переопределяю метод сохранения ModelForm. Я разбираю файл Excel и, если есть некоторые значения, я обновляю количество в объектах, связанных с экземпляром формы. Он работает в первый раз, когда экземпляр не имеет связанных объектов. Но во второй раз, когда я обновляю значения, ничего не происходит. Я не уверен, что это имеет какое-то отношение к параметру commit
.Модель Django не сохраняется после вызова save()?
EDIT - Соответствующий код:
def save(self, commit=True):
"""
Overrides the save method in order to add the product inventory items listed in
the uploaded Excel file, if one was uploaded.
"""
inventory = super(AddOrChangeProductsInventoryForm, self).save(commit)
self._update_inventory_items_quantities()
if not commit:
inventory.save()
self.save_m2m()
return inventory
def _update_inventory_items_quantities(self):
inventory = self.instance
if len(self.excel_data_dict) == 0:
return inventory
non_existing_products = []
for i, product_sku in enumerate(self.excel_data_dict['SKU']):
quantity = self.excel_data_dict['Cantidad'][i]
new_item = inventory.productinventoryitem_set.filter(product__sku=product_sku).first()
if new_item is None:
product = Product.objects.filter(sku=product_sku).first()
if product is None:
# TODO: Raise warning in view
non_existing_products.append(product_sku)
continue
new_item = ProductInventoryItem()
new_item.product = product
new_item.inventory = inventory
new_item.quantity += quantity
# TODO: Check why after first update it's not being updated
'инвентарный = супер (AddOrChangeProductsInventoryForm, самость) .save (фиксации)' не должен он быть '.save (совершить = совершить)'? – dtgq
Поскольку это единственный параметр, не подразумевается ли это его posición? – Pepedou