Пожалуйста, помогите мне понять, почему эта ошибка в App Engine (Python 2.5, высокая репликация)?
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
handler.post(*groups)
File "/base/data/home/apps/s~apptest/1.354937136776013205/main.py", line 963, in post
get_purchases_for_user(pur.user, pur.car.model)
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 3592, in __get__
reference_id.to_path())
ReferencePropertyResolveError: ReferenceProperty failed to be resolved: [u'User', 374836L]
Контекст : приложение о рекомендациях купить автомобили.
Когда это происходит : примерно 2 раза на каждые 100 транзакций приблизительно, поэтому на самом деле я не знаю, когда и почему.
Где объект pur в коде определяется как:
allPurchases = models.Purchase.all()
for pur in allPurchases:
car = get_purchases_for_user(pur.user, pur.car.model)
Также я поместил этот код раньше, и я получил ту же ошибку, конечно, ссылаясь на эту строку
logging.error("Object user: %s, Car Model %s" % {str(pur.user), pur.car.model})
Итак, проблема не вв функции get_purchases_for_user
А вот модели в хранилище данных:
class User(db.Model):
username = db.StringProperty(
required=True)
name = db.StringProperty(
required=True)
email = db.EmailProperty(
required=True)
password = db.StringProperty(
required=True)
class Car(db.Model):
model = db.StringProperty()
name = db.StringProperty()
year = db.DateTimeProperty()
class Purchase(db.Model):
user = db.ReferenceProperty(User,
collection_name='recommendations')
car = db.ReferenceProperty(Car,
collection_name='recommendations')
when = db.DateTimeProperty(
auto_now=True)