/ / Неможливо обернути фрагменти з помічника з хрусткими формами в Django - python, django, django-forms, django-crispy-forms

Не вдається обернути фрагменти з помічника з хрусткими формами в Джанго - пітони, джанго, джанго форм, джанго-хрусткі форми

Я прагну створити щось, як описано в Відображення декількох рядків і стовпців у форматі django-crispy

Я маю динамічну кількість полів, які додаються до форми під час виконання через параметр до конструктора. Подобається так:

class AddRecordForm(forms.Form):

def __init__(self, *args, **kwargs):
extra = kwargs.pop("extra")
super(AddRecordForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.layout = Layout(extra)
self.helper.add_input(Submit("submit","Submit"))

for i, field in enumerate(extra):
self.fields[field] = forms.CharField()

У поєднанні з моїм переглядом, який використовує ajax для повернення візуалізованої відповіді, все виглядає добре:

  form = AddRecordForm(extra=columns) #columns is a list of field names I want included in the form
context = Context( {"form" : form, "template" : template } )

form.helper[:len(columns)].wrap(Field, css_class="span6")
#the above call works fine and wraps each field as expected

#form.helper[:len(columns)/2].wrap_together(Div, css_class="row-fluid")
#form.helper[len(columns)/2:].wrap_together(Div, css_class="row-fluid")

#print len(form.helper) => 1?
#form.helper[0][:len(columns)/2].wrap_together(Div, css_class="row-fluid")

template_string = """{% load crispy_forms_tags %} {% crispy form form.helper %}"""
t = Template(template_string)
return HttpResponse(t.render(context))

Проблема виникає, коли я намагаюся wrap_together першої половини полів, а друга половина полів. Компілятор каже:

list indices must be integers, not NoneType

Гаразд? Тоді я намагаюся тикати навколо, потім друкувати len (form.helper), який потім виводить 1. Huh? Незалежно від того, індекс 0 першого звернення до виклику не працює, і компілятор скаржиться на цей атрибут гетитем не існує.

Що дає? Я думав, що я слідую [документації] [1] в значній мірі саме у цьому випадку.

EDIT # 1: Добре, є деяка funkiness з сплайсингу відбувається тут. Якщо я налаштувати індекси на виклик, щоб обернути першу половину, щоб прочитати як такий

half = len(columns)/2
form.helper[0:half].wrap_together(Div, css_class="row-fluid")

Це призводить до того, що ВСІ поля обертаються. Не впевнений, чому він не дотримується злиття кінця індексу.

Відповіді:

0 для відповіді № 1

це повністю виглядає як помилка у хрустких формах wrap_together, я буду переглядати його у ці вихідні або раніше, якщо це можливо.