Django сохраняет изменения в базе данных

Я пытаюсь обновить колонку is_admin в модели user_profile. Я написал следующий код в views.py, но он не обновляется в БД. Как я могу сохранить изменение (user_object[0].is_admin = True) в БД?

def post(self, request, format=None):
    users_provided = request.data.get('user_ids')
    for each_user in users_provided:
        user_object = UserProfile.objects.filter(user__is_active=True, user_id=each_user)
        if (user_object.exists()):
            user_object[0].is_admin = True
            user_object.update()

Используйте user_object[0].save():

if (user_object.exists()):
    user_object[0].is_admin = True
    user_object[0].save()

Вы можете обновить элемент с помощью:

def post(self, request, format=None):
    users_provided = request.data.get('user_ids')
    for each_user in users_provided:
        user_object = UserProfile.objects.filter(user__is_active=True, user_id=each_user)
        user_item = user_object.first()
        if user_item:
            user_item.is_admin = True
            user_item.save()

Мы можем значительно повысить эффективность, записав это в виде:

def post(self, request, format=None):
    users_provided = request.data.get('user_ids')
    UserProfile.objects.filter(
        user__is_active=True,
        user_id__in=users_provided
    ).update(is_admin=True)
Вернуться на верх