необходимо построить что то вроде
<select> <option disabled>Авто</option> <option value="Audi">--Audi</option> <option value="BMW">--BMW</option> <option value="BMW"> --BMW</option> <option disabled>Мото</option> <option value="BMW">--BMW</option> </select>
Где <option disabled> это родительская категория.
модель
class MainGroup(models.Model): name = models.CharField(max_length=150) def __str__(self): # __unicode__ on Python 2 return self.name class Category(models.Model): maingroup = models.ForeignKey(MainGroup,verbose_name='Группа') name = models.CharField(max_length=40,verbose_name='Категория',unique=True)
форма которая выводит имя категории из Category
class ZipForm(ModelForm): def __init__(self, *args, **kwargs): super(ZipForm, self).__init__(*args, **kwargs) for name, field in self.fields.items(): if name == 'location': field.widget.attrs.update({'class':"form-control", 'data-val':"true", 'data-val-length':"Максимальная длинна заголовка 200 символов", 'data-val-length-max':"200", 'data-val-required':"Поле является обязательным к заполнению" , 'id':"location", 'maxlength':"200", 'name':"location", 'placeholder':"Укажите месторасположения", 'required':"True", 'type':"select", 'value':"", 'aria-required':"true"}) elif name =='category': field.widget.attrs.update({'class':"form-control", 'data-val':"true", 'data-val-length':"Максимальная длинна заголовка 200 символов", 'data-val-length-max':"200", 'data-val-required':"Поле является обязательным к заполнению" , 'id':"category", 'maxlength':"200", 'name':"category", 'placeholder':"Укажите категорию", 'required':"True", 'type':"select", 'value':"Укажите категорию"})
код шаблона естественно только список категорий
<select class="form-control" name="category" placeholder="Укажите категорию" required="True" type="select" value="Укажите категорию"> <option value="" selected="selected">---------</option> <option value="1"> Audi</option> <option value="2">Acura</option> <option value="3">BMW</option> <option value="4">Lexus</option> <option value="5">Porshe</option> <option value="6">Мото</option> <option value="7">Скутера</option> <option value="8">Квадроциклы</option> <option value="9">Гидроциклы</option> <option value="10">Автобусы</option> <option value="11">Шины</option> <option value="12">Диски</option> </select>