В идеале:
Есть базовые классы SearchForm, SearchField
От класса SearchField наследуются остальные поля, например SearchCharField, SearchChoiceField, SearchModelChoiceField.
С классом SearchForm работатем как с классом django.forms.Form, т.е. примерно так:
class MySearchForm(SearchForm):
name = SearchCharField()
somemodel = SearchModelChoiceField(model=SomeModel)
в view:
def someview(request):
if request.method == 'POST':
form = MySearchForm(request.POST)
if form.is_valid():
#do something with form
pass
else
form = MySearchForm()
return render_to_response('sometemplate.html', {'searchform' : form })
Хочется чтобы можно было создавать свои поля, наследуемые от базового SearchField, и при этом не менять JavaScript код
Как должно выглядеть, приводил ссылку в первом посте,
http://code.djangoproject.com/query