I want to Update only name field if only name is sent from frontend, update only image if only image is sent from frontend, update both if name & image is sent from frontend In Django
JavaScript
x
18
18
1
data =request.data
2
3
if data['name'] and data['image']:
4
category= Category.objects.get(id=data['id'])
5
category.name=data['name']
6
category.image=data['image']
7
category.save()
8
9
elif data['name']:
10
category= Category.objects.get(id=data['id'])
11
category.name=data['name']
12
category.save()
13
14
else:
15
category= Category.objects.get(id=data['id'])
16
category.image=data['image']
17
category.save()
18
Advertisement
Answer
You can construct a dictionary that only contains the key-value pairs to update and then use .update(…)
[Django-doc] to update the corresponding Category
record:
JavaScript
1
10
10
1
categories = Category.objects.filter(id=data['id'])
2
updates = {}
3
4
if 'name' in data:
5
updates['name'] = data['name']
6
if 'image' in data:
7
updates['image'] = data['image']
8
9
if updates:
10
categories.update(**updates)