У меня было существующее нерелевантное приложение Django, использующее MongoDB. Казалось, что связанные поля объектов хранятся по ObjectID. Например, у меня есть модель UserProfile, которая относится к объектам User с помощью OneToOneField. И данные сохраненных объектов были такими:
{
"_id": {
"$oid": "4f67540040e0460001000001"
},
"user_id": {
"$oid": "4f67540040e0460001000000"
},
....
}
Я развернул приложение на Heroku, которое использует репозиторий git для получения нерелевантных проектов django и django-mongodb-engine. Я использовал версию pymongo 2.1.1. Я не уверен, из-за обновления какой библиотеки я обнаружил, что связанные поля, похоже, больше не хранятся в ObjectId. Данные о новых объектах хранятся в виде:
{
"_id": {
"$oid": "4f67540040e0460001000001"
},
"user_id": "4f67540040e0460001000000",
....
}
Проблема в том, что это вызывает ошибки из-за несоответствия формата данных. Не только я не мог получить связанный объект из ранее сохраненных объектов (получение «DoesNotExist: запрос соответствия профиля пользователя не существует.»). Связанные объекты вновь сохраненных объектов также не могут быть извлечены Piston.
Я попытался добавить спецификатор ревизии в URL-адреса репозитория git в файле requirements.txt, но безуспешно, что странно.
Кто-нибудь знает о том, что творится? Возможно, мне нужно обновить данные mongoDB, чтобы исправить эти связанные значения идентификаторов данных?