2016-01-13 7 views
0

Я создал приложение, которое использует django-rest-framework. Проблема в том, что при производстве с большим количеством данных рендеринг HTML-страниц будет тайм-аут. Это вызвано, я полагаю, полями select, которые представляют ForeignKey модели, которые занимают слишком много времени для рендеринга, когда доступны все производственные данные. Каков наиболее удобный способ предотвратить это?DjangoRestFramework HTML views timeout

+0

Не могли бы вы показать нам, что форма, шаблон и вид, который выберет время? –

+0

Форма автогенерируется по djangorestframework. Это не обычное представление. – zefciu

+0

Форма содержит некоторые внешние ключи, не так ли? –

ответ

0

Вы должны использовать методы запроса на выбор select_related()/prefetch_related для извлечения связанных объектов, которые заполняют выбранные вами. Отправьте свои модели, сериализатор и запрос, чтобы мы могли сделать реальный пример.

+0

У меня такая же проблема, и это не проблема с запросами базы данных, потому что версия JSON проявляется очень быстро – Joshmaker

1

Насколько я понимаю, проблема заключается в том, что selectbox загружен множеством предметов. Решение, которое используется в админах django, заключается в использовании «raw_id_fields» для полей выбора (или внешних ключей), в которых много элементов.

К сожалению, DRF пока не поддерживает поля Raw ID. Однако вы можете реализовать аналогичный подход, используя поля автозаполнения. Прямо сейчас нет встроенной поддержки, но вы можете использовать некоторые внешние пакеты, как описано в официальной документации DRF: http://www.django-rest-framework.org/topics/browsable-api/#autocomplete

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