Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как передать исходные данные как список в набор форм [RSS Feed]

#1 Окт. 31, 2017 07:56:33

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

Как передать исходные данные как список в набор форм

Друзья, большая просьба помочь. У меня есть набор вложенных форм, который создается в классе-контроллере CreateView.

 CartItemFormset = inlineformset_factory(Cart, CartItem, can_order = True, fields = '__all__')

Теперь мне надо передать начальные данные в этот набор форм, причем для одного из полей значения выбираются из списка. Т.е. для такого поля каждой вложенной формы значение выбирается из списка. Но как это сделать?

Первым делом, мы создаем экземпляр главной формы и сохраняем его.

 self.form = CartForm(request.POST)
    if self.form.is_valid():
        self.new_cart = self.form.save()
        items = Item.objects.filter(slug__in=cart_items.keys(), is_visible=True, price__gt=0)
Now we create a copy of the formset and it’s necessary to transfer the initial data to the formset. This is a reference to the record of the main model and the values of the list of items. Thus, in each form of the formset, there must be a reference to the record of the main model and one of the elements of the list of items. But how to do that???
Теперь мы создаем экземпляр набора форм и передаем начальные данные. При этом в одно из полей модели подставляется ссылка на запись главной модели. А в одно из полей значение из списка. И вот в этом загвоздка. Т.е. нужно, чтобы в первую вложенную форму подставлялось первое значение из списка. Во вторую – второе и т.д.. Т.е. примерно вот так:
  self.formset = CartItemFormset(request.POST, instance = self.new_cart, initial = [
     {cart: self.new_cart, item: items}])

Но это не работает. Может надо как-то перебирать эти значения в цикле или еще как-то решить данную проблему? Помогите плиз!

Отредактировано cdi9 (Окт. 31, 2017 07:57:00)

Офлайн

#2 Ноя. 11, 2017 13:10:03

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Как передать исходные данные как список в набор форм

Не совсем понятно, какую проблему пытаешься решить.
Опиши, что нужно сделать на уровне бизнес логики.

Офлайн

  • Начало
  • » Django
  • » Как передать исходные данные как список в набор форм[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version