Форум сайта python.su
В проекте есть форма:
class FormA(forms.Form):
name_cat=forms.ModelChoiceField(queryset=Catalog.objects.all(), empty_label=None)
…
проблема в том, что модель Catalog содержит более 10 тысяч наименований.
Вопрос: как используя инструменты django, передать в страницу только десяток-другой наименований, выбранных по определенному динамическому фильтру? В идеале что бы проверка при этом шла по всем объектам модели Catalog.
Офлайн
form = FormA() form.fields['name_cat'].queryset=Catalog.objects.filter(.......)
class FormA(forms.Form): def __init__(self, *args, **kw): qs=kw.pop['qs'] super(ChildLegalState, self).__init__(*args, **kw) self.fields['name_cat'].queryset=.... # # # # def any_view(request): query=Catalog.objects.filter(.......) form=FormA(qs=query)
Отредактировано FishHook (Окт. 2, 2012 05:37:24)
Офлайн
FishHookНу или переопредели __init__ у формыform = FormA() form.fields['name_cat'].queryset=Catalog.objects.filter(.......)class FormA(forms.Form): def __init__(self, *args, **kw): qs=kw.pop['qs'] super(ChildLegalState, self).__init__(*args, **kw) self.fields['name_cat'].queryset=.... # # # # def any_view(request): query=Catalog.objects.filter(.......) form=FormA(qs=query)
Офлайн