2016-08-13 4 views
0

Я пишу back-end на основе Django, используя django-mongodb-engine для приложения Android, и я пытаюсь получить данные из запроса PUT для обновления записи в моя база данных. Я получаю имя пользователя и фильтрую базу данных для объекта пользователя с этим именем (успешно), но функция сохранения, похоже, не сохраняет изменения. Я могу сказать, что изменения не сохраняются, потому что, когда я перехожу на инструмент управления базами данных mLab, изменений там нет.django-mongodb-engine не может обновить объект

Вот код:

existing_user = User.objects.filter(userName = user_name) 
     if existing_user == None: 
      response_string += "<error>User not identified: </error>" 

     elif (existing_user[0].password != user_pwd): 
      response_string += "<error>Password error.</error>" 

     #if we have a validated user, then manipulate user data 
     else: 
      existing_user[0].star_list.append(new_star) 
      existing_user[0].save() 

Я не получаю никаких сообщений об ошибках, но данные остаются одинаковыми. После указанного выше star_list остается пустым. На самом деле, в качестве теста я даже пытался заменить положение еще выше:

else: 
    existing_user[0].userName = "Barney" 
    existing_user[0].save() 

И следуя вызов, existing_user [0] .userName еще это первоначальное значение («Фред», а не «Барни»)!

ответ

0

Нашли ответ на этот вопрос. Я не знаю, почему он не работает, как писал, но там были проблемы, пытаясь получить доступ к объекту по списку ... другими словами, следующее не работали:

existing_user[0].userName = "Barney" 
existing_user[0].save() 

Но это сделал:

found_user = existing_user[0] 
found_user.userName = "Barney" 
found_user.save() 

Основываясь на моем понимании списков Python, либо один должен быть такой же ... но, возможно, некоторые питона гений там может объяснить, почему они не являются?

Смежные вопросы