Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2015 11:35:56

Oris_37
Зарегистрирован: 2015-04-22
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Супер возможности Django Forms

Господа, доброго времени суток. У меня возник вопрос:

Как сделать автозаполнение полей джангоформы, при выборе одного из компонентов выпадающего списка строка которая это 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

Офлайн

#2 Ноя. 26, 2015 11:39:46

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Супер возможности Django Forms

Вы хотите что-то там заполнить (я не понял что) без перезагрузки страницы или с перезагрузкой?



Офлайн

#3 Ноя. 26, 2015 11:42:32

Oris_37
Зарегистрирован: 2015-04-22
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Супер возможности Django Forms

FishHook
Вы хотите что-то там заполнить (я не понял что) без перезагрузки страницы или с перезагрузкой?
Без перезагрузки.
Я более верно сформулировал вопрос) Как отфильтровать поля объектов модели, по другим объектам этой же модели, которые подчиняются этому объекту) ВОТ)

Отредактировано Oris_37 (Ноя. 26, 2015 11:43:26)

Офлайн

#4 Ноя. 26, 2015 11:48:43

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Супер возможности Django Forms

Oris_37
Без перезагрузки.
Значит всё должно происходить на клиенте. Джанго - серверный фреймворк, ей совершенно пофигу, что происходит на клиенте. Учите джаваскрипт и реализуйте свои фантазии в клиентском коде.
Напоминаю, что здесь - форум по питону.



Офлайн

#5 Ноя. 26, 2015 11:52:03

Oris_37
Зарегистрирован: 2015-04-22
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Супер возможности Django Forms

FishHook
Благодарю)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version