Необходимо выполнить метод update на записываемых вложенных сериализаторах в django
models.py
class Product(models.Model):
product_id = models.CharField(max_length=50,default=uuid.uuid4, editable=False, unique=True, primary_key=True)
product_name = models.CharField(unique=True,max_length=255)
class Client(models.Model):
client_id = models.CharField(max_length=50,default=uuid.uuid4, editable=False, unique=True, primary_key=True)
org = models.ForeignKey(Organisation, on_delete=models.CASCADE, related_name='org',null=True)
product = models.ManyToManyField(Product,related_name='product')
client_name = models.CharField(unique=True,max_length=100)
....
serializers.py
Когда я попытался выполнить PUT запрос в конечной точке клиента, значение метода выставления счета обновляется, но значение продукта не обновляется. Так как поле product является полем many to many и поэтому я задал many = True и не могу выполнить обновление на вложенном сериализаторе.
Прошу помочь решить эту проблему, так как я застрял здесь надолго и не могу разобраться в проблеме. Ошибка, возникающая при выполнении PUT, имеет вид
Вам просто нужно
product.save()
for products_data in product_data:
product = Product.objects.get(pk=products_data.get('product_id'))
product.product_name = products_data.get('product_name', product.product_name)
product.save()
instance.product_data.add(product)
instance.save()
