Django: насколько прямосовместима модель-экземпляр. Myrelatedmodel_cache - PullRequest
0 голосов
/ 02 августа 2011

В настоящее время я использую «метод Pythonic-join», как описано здесь: Презентация Disqus Scaling и django-templates-part-2 -ffective-reverse-lookups blogpost .Это довольно распространенный метод, позволяющий избегать N + 1 запросов наряду с select_related.

Однако я не могу найти официальную документацию model_instance._myrelatedmodel_cache.Я обеспокоен тем, что если это действительно недокументированная функция, то в будущем проблема может быть прекращена.

Спасибо!

1 Ответ

1 голос
/ 02 августа 2011

Это недокументированная функция, и поэтому она может быть изменена или удалена в будущих версиях платформы без уведомления.Поскольку он не является частью общедоступного API, у вас нет гарантии и на процесс устаревания Django, поэтому все ставки отключены.

Однако, если вы придерживаетесь текущей версии (почти навернякавключая ориентированные на безопасность релизы), ваш код будет продолжать работать нормально.Если вы в конечном итоге используете эту технику и захотите обновить ее позже, вам просто нужно немного протестировать, чтобы убедиться, что часть фреймворка не изменилась, и я подозреваю, что этот фрагмент фреймворка, в частности, не 'Это очень вероятно.

В долгосрочной перспективе жизнь, вероятно, будет проще, если вы будете придерживаться документированных функций, но иногда компромиссы в отношении скорости или функциональности стоят проблем - вам придется сделатьэтот вызов в контексте вашего проекта.

...