Найти - Пользователи
Полная версия: Супер возможности Django Forms
Начало » Django » Супер возможности Django Forms
1
Oris_37
Господа, доброго времени суток. У меня возник вопрос:

Как сделать автозаполнение полей джангоформы, при выборе одного из компонентов выпадающего списка строка которая это 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
FishHook
Вы хотите что-то там заполнить (я не понял что) без перезагрузки страницы или с перезагрузкой?
Без перезагрузки.
Я более верно сформулировал вопрос) Как отфильтровать поля объектов модели, по другим объектам этой же модели, которые подчиняются этому объекту) ВОТ)
FishHook
Oris_37
Без перезагрузки.
Значит всё должно происходить на клиенте. Джанго - серверный фреймворк, ей совершенно пофигу, что происходит на клиенте. Учите джаваскрипт и реализуйте свои фантазии в клиентском коде.
Напоминаю, что здесь - форум по питону.
Oris_37
FishHook
Благодарю)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB