1
这是一些代码,它不应该如何工作。每次查询数据库时,我都会得到0或1的值,而数据库中的值不会增加,即使正如您所看到的,在第86和89行中,值也会递增。任何想法这里有什么问题?我在Google App引擎上使用Django。谷歌应用程序引擎数据库值不增加
user_result = request.POST['json']
65 user_result = json.loads(user_result)
66 user_country = get_user_country(user_result)
67 question_number = get_question_number(user_result)
68 answered_option = get_answered_option(user_result)
69
70 country_option_1 = 0
71 country_option_2 = 0
72 world_option_1 = 0
73 world_option_2 = 0
74
75 """
76 Get already existing record for the question for the contry, or create
77 new one and put/update in db
78 """
79
80 country_wide_data = db.GqlQuery("SELECT * FROM CountryWideData WHERE country = :1 AND questionNo = :2", user_country, question_number)
81 flag = False
82 for i in country_wide_data:
83 flag = True
84 if flag:
85 if answered_option==1:
86 country_wide_data[0].optionOne = country_wide_data[0].optionOne + 1
87
88 elif answered_option==2:
89 country_wide_data[0].optionTwo = country_wide_data[0].optionTwo + 1
90 country_option_1 = country_wide_data[0].optionOne
91 country_option_2 = country_wide_data[0].optionTwo
92 country_wide_data[0].put()
93 else:
94 country_wide_data = CountryWideData(country=user_country, questionNo=question_number)
95
96 if answered_option==1:
97 country_wide_data.optionOne = 1
98 country_wide_data.optionTwo = 0
99 elif answered_option==2:
100 country_wide_data.optionOne = 0
101 country_wide_data.optionTwo = 1
102 country_option_1 = country_wide_data.optionOne
103 country_option_2 = country_wide_data.optionTwo
104 country_wide_data.put()
感谢亚当!虽然获取需要一个参数。 fetch(1)为我工作。 – msk 2010-02-22 14:30:37
Adams,你将如何使用事务更新值的示例代码?看起来像GQL不允许更新语句。 :/ – msk 2010-02-22 15:17:53
Shuaib:要执行交易,请删除所有put语句,并立即在循环后添加:dp.put(country_wide_data)。 – dannyroa 2010-02-22 23:11:39