Я не могу использовать modelForm по той причине, что не могу привязаться к какой-то модели.
У меня есть модели Country, City, SecondarySchool. SecondarySchool имеет связь с City, City с Country.
В БД у меня заполнены страны. А вот в таблице city городов не хватает. Поэтому при добавлении учебного заведения, если оно не было найдено автокомплитом, я должен буду передать city, чтобы добавить его в таблицу перед добавлением учебного заведения, наличие которого тоже не предопределено.
Получается такая схема. Пользователи добавляют учебное заведение, в котором они учились, форма примерно такая:
class SecondarySchoolForm(forms.Form):
country = forms.ModelChoiceField(queryset=Country.objects.all())
city = forms.ModelChoiceField(queryset=City.objects.none())
school = forms.ModelChoiceField(queryset=SecondarySchool.objects.none())
from_year = forms.IntegerField(
min_value=1900,
max_value=timezone.make_aware(datetime.now(), timezone.get_current_timezone()).year,
required=False
)
to_year = forms.IntegerField(
min_value=1900,
max_value=timezone.make_aware(datetime.now(), timezone.get_current_timezone()).year+7,
required=False,
)
graduation_year = forms.IntegerField(
min_value=1900,
max_value=timezone.make_aware(datetime.now(), timezone.get_current_timezone()).year+7,
required=False
)
class_name = forms.CharField(max_length=1, required=False)
Получается, что если автокомплит не найдет что-то, то при сохранении данных формы, я это должен добавить.
Есть ли виджеты автокомплита, умеющие себя вести в такой ситуации? Или всё же необходимо будет писать свой?
Updated 26 Oct. 2015, 0:04 by tiso.