Форум сайта python.su
Господа, доброго времени суток. У меня возник вопрос:
Как сделать автозаполнение полей джангоформы, при выборе одного из компонентов выпадающего списка строка которая это ModelChoiceField, заполнить однотипные строки? которые в МОДЕЛИ уже есть?
Пример:
У меня есть модель Товары в которую с этой формы записывается НОВЫЙ ТОВАР.
При выборе ИЗ выпадающего списка
parent = forms.ModelChoiceField(queryset=Good.objects.filter(is_complect=is_complect), label=u'Выбор комплекта',required=False
class FormSite(forms.Form): name = forms.CharField(max_length=250, label=u'Наименование') artikul = forms.CharField( max_length=15, label=u'Артикуль') good_type = forms.ModelChoiceField(queryset=GoodType.objects.all(), label=u'Тип товара') is_complect = forms.BooleanField(label=u'Комплект', required=False, help_text=u'Выберите, если это комплект') parent = forms.ModelChoiceField(queryset=Good.objects.filter(is_complect=is_complect), label=u'Выбор комплекта',required=False) brand = forms.ModelChoiceField(queryset=Brand.objects.all(), label=u'Бренд') description = forms.CharField(max_length=200, label=u'Описание') #default_picture = forms.ImageField(label=u'Изображение', required=False) price = forms.IntegerField(label=u'Цена') agreement = forms.ModelChoiceField(label=u'Точка продажи', queryset=Agreement.objects.all()) shape = forms.ModelChoiceField(label=u'Форм фактор', queryset=ShapeGood.objects.all()) width = forms.IntegerField(label=u'Ширина') height = forms.IntegerField(label=u'Высота') depth = forms.IntegerField(label=u'Глубина') weight = forms.IntegerField(label=u'Вес изделия') appointment = forms.ModelChoiceField(label=u'Размещение', queryset=Appointment.objects.all())
class Good(models.Model): name = NAME_FIELD artikul = models.CharField(default='', max_length=15) good_type = models.ForeignKey(GoodType) is_complect = models.BooleanField(default=False) parent = models.ForeignKey('self', blank=True, null=True, default=None) brand = models.ForeignKey(Brand) description = models.TextField(default='') default_picture = models.CharField(default='', max_length=200) price = models.BigIntegerField(default=0) old_price = models.BigIntegerField(default=0) is_stock = models.BooleanField(default=False) agreement = models.ForeignKey(Agreement, blank=True, null=True) shape = models.ForeignKey(ShapeGood, blank=True, null=True) width = models.IntegerField(default=0) height = models.IntegerField(default=0) depth = models.IntegerField(default=0) weight = models.IntegerField(default=0) appointment = models.ForeignKey(Appointment, blank=True, null=True) brandcountry = models.TextField(default='') brandcity = models.TextField(default='') def __unicode__(self): return self.name
Офлайн
Вы хотите что-то там заполнить (я не понял что) без перезагрузки страницы или с перезагрузкой?
Офлайн
FishHookБез перезагрузки.
Вы хотите что-то там заполнить (я не понял что) без перезагрузки страницы или с перезагрузкой?
Отредактировано Oris_37 (Ноя. 26, 2015 11:43:26)
Офлайн
Oris_37Значит всё должно происходить на клиенте. Джанго - серверный фреймворк, ей совершенно пофигу, что происходит на клиенте. Учите джаваскрипт и реализуйте свои фантазии в клиентском коде.
Без перезагрузки.
Офлайн
FishHookБлагодарю)
Офлайн