Доброго времени суток!
Суть следующая.
Имеется несколько связанных через FK таблиц MySQL: Страны, Федеральные округа, Регионы, Города.
#models.py
class Country(models.Model):
country_name = models.CharField(max_length=200, verbose_name='Страна')
def __unicode__(self):
return self.country_name
class Meta:
verbose_name = 'страна'
verbose_name_plural = 'Страны'
class District(models.Model):
district_name = models.CharField(max_length=100, verbose_name='Федеральный округ')
district_country = models.ForeignKey('Country', verbose_name='Подчинение страны')
def __unicode__(self):
return self.district_name
class Meta:
verbose_name = 'федеральный округ'
verbose_name_plural = 'Федеральные округа'
Данные из этой таблицы и некоторых других вывожу через views.py:
#views.py
def CabinetView(request, id):
cab = Cabinet.objects.all().filter(id=id) #Выводится список нужных кабинетов
cab_type = CabinetTypes.objects.all() #... их типов
country = Country.objects.all() #... список стран
district = District.objects.all() #... список фед. округов
region = Region.objects.all() #... список районов
city = City.objects.all() #...список городов
rendering = {
'cab': cab,
'cab_type': cab_type,
'country': country,
'district': district,
'region': region,
'city': city,
}
return render_to_response('cabinet.html', rendering)
в шаблон в форму, где должны быть зависимые select'ы:
<!-- cabinet.html -->
<tr>
<th>Страна</th>
<td>
<select name='cab_coutry' class='forinput_edit' id='select-1'>
{% for i in country %}
<option value='{{ i.id }}' required>{{ i.country_name }}</option>
{% endfor %}
</select>
</td>
</tr>
<tr>
<th>Федеральный округ</th>
<td>
<select name='cab_district' class='forinput_edit' id='select-2'>
{% for i in district %}
<option value='{{ i.id }}' required>{{ i.district_name }} ({{ i.district_sname }})</option>
{% endfor %}
</select>
</td>
</tr>
Форма должна работать по идее так: при выборе страны без перезагрузки страницы в следующем select должен загружаться список фед. округов, привязанных к выбранной стране. И так далее. Подгрузился список округов - следующим select'ом подгружается список регионов, а затем и городов в выбранном регионе. То есть 4 зависимых select'a.
Возможно ли реализовать подобное средствами django? Несмотря на то, что в интернете есть множество сайтов, где реализована подобная "система", информация о самой реализации довольно скудна.