Hamed Salimian
Hamed Salimian

Reputation: 881

Django: order formset without form change

I have a form with only one field (name of family members).

class FamilyMemeberItem(forms.Form):
    name= forms.CharField(label=_('name'), max_length=20)

Now I want my form be sorted (arbitrary order) defined by the user. For example in a family, I want to show A first, then B and then C, while the creation sequence may be C, B and A. Is there anyway to do that?

I searched and realized I should add an order field to my form and override the __iter__() method. Is that the only way? If there is no way to do that without change in form?

And could anyone please tell me about the field can_order of formset_factory? When I add it, an extra filed is loaded next to my form, and that's and integer presenting the number of that field. Can I change and save that so that the order changes?

Upvotes: 0

Views: 277

Answers (1)

Ralf
Ralf

Reputation: 16505

I answered a similar question you posted.

I'll just repeat the last part here:

If you want to store the order in the database, you need to define a new field in you model and store the order in that. The order of formsets is only present inside a single request/response, after that its gone.

Upvotes: 1

Related Questions