Почему рендеринг форм Django продолжается вечно? - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть ModelForm, основанный на гигантской модели 300 полей. Фактически одна модель с 150 полями, наследующими от другой с 150 другими.

Я ожидал, что модель вызовет некоторые проблемы на syncdb или save(), но работает нормально.

Тем не менее, вызов формы на основе этой модели as_p() метод просто займет навсегда. Я могу ждать 10 минут, не видя никакого выхода. То же самое для любого метода рендеринга HTML для этой формы. Нет ошибок, просто Python висит там, где я нахожусь в оболочке или на сервере разработки.

Есть ли какие-либо известные ограничения или ошибки в формах объятий в Django? Есть ли обходной путь?

Я подозреваю, что есть проблема с конкатенацией строк. Тем временем я собираюсь покопаться в исходном коде Django, но если кто-нибудь и получит какую-то подсказку, которая спасет мой день.

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Я нашел что-то подобное в коде:

INCOME_CHOICES = tuple(zip(range(1, 1000000), range(1, 1000000)))

models.IntegerField(choices=INCOME_CHOICES)

Полагаю, тайны больше нет: -)

1 голос
/ 12 декабря 2011

если у вас есть внешние ключи к таблицам с большим количеством строк, стоит помнить, что виджет по умолчанию для каждого из них - это выпадающий список (<select>) с каждой строкой ('s unicode ) как выбор. они часто бывают огромными, и стоит посмотреть на варианты (например, админ raw_id_field)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...