Как обновить поле в Django

Я хочу обновлять только поле имени, если из frontend отправлено только имя, обновлять только изображение, если из frontend отправлено только изображение, обновлять оба поля, если из frontend отправлено имя и изображение В Django

data =request.data

if data['name'] and data['image']:            
   category= Category.objects.get(id=data['id'])
   category.name=data['name']
   category.image=data['image']
   category.save()

elif data['name']:            
   category= Category.objects.get(id=data['id'])
   category.name=data['name']
   category.save()

else:            
   category= Category.objects.get(id=data['id'])
   category.image=data['image']
   category.save()

Вы можете создать словарь, содержащий только пары ключ-значение для обновления, а затем использовать .update(…) [Django-doc] для обновления соответствующей Category записи:

categories = Category.objects.filter(id=data['id'])
updates = {}

if 'name' in data:
    updates['name'] = data['name']
if 'image' in data:
    updates['image'] = data['image']

if updates:
    categories.update(**updates)
Вернуться на верх