Я пытаюсь разработать модуль друзей, чтобы познакомиться с django. Теперь появилось очень странное поведение, которому я не могу следовать. Думаю, за ним трудно следовать, но я был бы очень признателен за помощь.
Когда я создаю экземпляр набора запросов для обновления некоторых значений, django создает правильный sqlquery, но в моей базе данных mysql данные не обновляются.
Даже если я напечатаю результат, django скажет мне правильные значения, которые «должны» поступить из БД ... но на самом деле это не так?
Мои запросы выглядят следующим образом:
friend_update=Friends.objects.filter(user_me=self.user_id, user_he = friend_id,
permission_he = True,
permission_me = True).update(permission_me=False)
see_friend_update=Friends.objects.filter(user_me=self.user_id, user_he = friend_id,
permission_he = True, permission_me = False)
#Save to DB#
for item in see_friend_update:
item.save()
for i in see_friend_update:
print "user me is %s with id %d permission_me set to %s, user_he is %s with id %d " %\
(i.user_me,i.user_me.id,i.permission_me, i.user_he, i.user_he.id)
### After updating friends permissions, this sets the permission of the counterpart
friend_update_vice_versa = Friend.objects.filter(user_me=friend_id, user_he = self.user_id,
permission_he = True,
permission_me = True).update(permission_he=False)
see_friend_update_vice = Friend.objects.filter(user_me=friend_id, user_he = self.user_id,
permission_he = False, permission_me = True)
for e in see_friend_update_vice:
print "user me is %s with id %d permission_he set to%s, user_he is %s with id %d " % \
(e.user_me,e.user_me.id,e.permission_he, e.user_he, e.user_he.id)
Джанго выдает следующие значения:
user me - тестер с id 2 access_me, установленным в False (в БД все еще "True"!), User_he - tester232 с id 1
пользователь me - это tester232 с идентификатором 1 для_применения_ он установлен в значение "Ложь" (в БД он по-прежнему "True"!), Пользователь__ является тестером с идентификатором 2
user me - это тестер с id 2 access_me, установленным в False (это действительно работает!), User_he - это tester232 с id 1
Надеюсь, я достаточно хорошо объяснил проблему, чтобы не было слишком сложно ...