0
djangoフォームのフィールドの選択肢を動的に変更したい。 アイテムのリストはかなり長いので(650アイテム以上)、私はそれらをdjangoキャッシュに保存します。数百項目のdjangoフォームフィールドの選択を変更すると、フリーズ/非応答が発生する
ただし、フィールドの選択肢として注入する場合、アプリケーションが応答しなくなります(ERR_EMPTYRESPONSEを返すこともあります)。
マイビュー:
class HomeView(TemplateView):
template_name = 'web/pages/homepage.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
categories = cache.get_or_set('categories_list', Category.objects.values('uuid', 'code', 'name'), 3600)
categories_choices = [(o['uuid'], '{} ({})'.format(o['name'], o['code'])) for o in categories]
print(categories_choices) #its printing proper choices here
context['form'] = SearchForm()
context['form'].fields['category'].choices = categories_choices #this line causes freeze/timeout
return context
が何が起こっているか任意のアイデア?おそらく、ドロップダウンの選択肢として600以上のアイテムが多すぎますか?