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)