Исчезают индексы в шаблоне django, когда я передаю kwargs в modelformset_factory - PullRequest
0 голосов
/ 22 января 2020

Относится к этому post , передавая дополнительные kwargs в modelformset исчезают индексы в шаблоне

form.py

class ConceptForm(forms.ModelForm):

  class Meta:
    model = app_models.Concept
    fields = '__all__'

  def __init__(self, *args, **kwargs):

    self.action = kwargs.pop('action', None)

    super(ConceptForm, self).__init__(*args, **kwargs)

    if self.action is not None:
      if self.action == 'detail':
        for field in self.fields:
          self.fields[field].widget.attrs['readonly'] = True

ConceptModelFormset = modelformset_factory(
  model = model,
  fields = show_fields,
  extra = extra,
  min_num = min_num,
  max_num = 15,
  form = ConceptForm
)

views.py

form_kwargs = {}
form_kwargs['action'] = action

modelformset = ConceptModelFormset(queryset=queryset, prefix=model.__name__.lower(), form_kwargs=form_kwargs)

шаблон. html

<div id="formset_{{ formset.prefix }}">
  {{ formset.management_form }}
  {% for form in formset %}
    {% for hidden in form.hidden_fields %}
      {{ hidden }}
    {% endfor %}
    {% for field in form %}
      <div class="form-group">
        <label for="{{ field.id_for_label }}">{{ field.label }}</label>
        {{ field|add_class:"form-control" }}
      </div>
    {% endfor %}
  {% endfor %}
</div>

Если я вызываю метод modelformset_factory без указания формы c, индексы появляются, но тогда функция отключения полей недоступна.

Кто-нибудь знает, что происходит. Спасибо.

...