Question

Ce poste se rapporte à ceci: Ajouter une ligne à inline dynamique dans django administration

Y at-il un moyen de achive ajouter formsets inline SANS utiliser javascript? De toute évidence, il y aurait une page refresh impliqué.

Donc, si la forme avait un bouton appelé « ajouter » ...

Je pensais que je pouvais le faire comme ceci:

if request.method=='POST':
  if 'add' in request.POST:
    PrimaryFunctionFormSet = inlineformset_factory(Position,Function,extra=1)
    prims = PrimaryFunctionFormSet(request.POST)

Ce que je pensais ajouter 1 à chaque fois, puis remplir le formulaire avec les données de poste. Cependant, il semble que le supplément = 1 n'ajoute 1 aux données de poste.

Était-ce utile?

La solution

Got it.

Parfois, il est la solution la plus simple. Il suffit de faire une copie des données de request.POST et modifier les TOTAL-FORMES.

par exemple ..

if request.method=='POST':
  PrimaryFunctionFormSet = inlineformset_factory(Position,Function)
  if 'add' in request.POST:
    cp = request.POST.copy()
    cp['prim-TOTAL_FORMS'] = int(cp['prim-TOTAL_FORMS'])+ 1
    prims = PrimaryFunctionFormSet(cp,prefix='prim')

Ensuite, il suffit de cracher la forme comme normale. Garde vos données, ajoute un éditeur en ligne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top