I have Inventory and Product Classes in models - The Product class have Inventory.item as ManyToManyField I can select items and save them in Product.items from Inventory.item.
I try to get quantity from request.POST.getlist() and submit request when I submit the request I want the Inventory.quantity to by subtract automatically whatever gets values as list from request.POST.getlist() after subtract Inventory.quantity model will update the items quantity by update
this my codes. I am not sure if I make correctly update I still get AttributeError: 'list' object has no attribute 'split'
models.py
class Inventory(models.Model):
stock_transaction_numbers = models.PositiveBigIntegerField(null=True, blank=True, unique=True,)
item = models.CharField(max_length=700,null=True, blank=True)
unit = models.CharField(max_length=100,null=True, blank=True)
quantity = models.IntegerField(null=True, default=0, blank=True)
class Product(models.Model):
name = models.CharField(max_length=200, null=True, blank=True, verbose_name="name")
items = models.ManyToManyField(Inventory, blank=True,verbose_name="items - ManyToManyField" )
in Views.py
def get_order(request, pk):
product = get_object_or_404(Product, pk=pk)
inventory = Inventory.objects.filter(id__in=product.items.all())
inventory_id = Inventory.objects.filter(id__in=inventory).values_list('id', flat=True)
get_quantity = Inventory.objects.filter(id__in=inventory_id).values_list('quantity', flat=True)
quantity = request.POST.getlist('quantity')
subtract_quantity = ([get_quantity - quantity for quantity, get_quantity in zip(quantity, get_quantity)])
for i in inventory_id:
Inventory.objects.filter(id__in=inventory_id).values_list('id', flat=True)
for x in subtract_quantity:
Inventory.objects.filter(id__in=inventory_id).update(quantity=F (subtract_quantity) + 1)
I got 'int' object has no attribute 'split' unhashable type: 'list'
any help would be greatly appreciated
source https://stackoverflow.com/questions/76323375/update-multiple-fields-in-django
Comments
Post a Comment