Codec42
Codec42

Reputation: 31

Cant order my form field in python django correctly

I try to order my form (in Django) but it doesn't work. I tried some ways but nothing helps.

I tried for example with SortedDict from django.utils.datastructures. But this is not up to date...

class RegisterForm (UserCreationForm):
    
    email = forms.EmailField(required=True)
    name = forms.CharField(required = True)

    class Meta:
        model = User
        fields = {'name','email', 'username','password1','password2'}
        field_order = {'name','email', 'username','password1','password2'}


    def __init__(self, *args, **kwargs):
        super(RegisterForm,self).__init__(*args, **kwargs)
        #self.rearrange_field_order()
        
    def save(self, commit=True):
        user = super(RegisterForm,self).save(commit = False)
        user.email = self.cleaned_data['email']
        user.name = self.cleaned_data['name']

        if commit:
            user.save()

        return user

This is the order of the output:

Can anyone help? At least with a method that is up to date?

Upvotes: 1

Views: 220

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599620

You have made fields and field_order sets. Sets are not ordered. They should be lists or tuples.

fields = ['name','email', 'username','password1','password2']
field_order = ['name','email', 'username','password1','password2']

Upvotes: 3

Related Questions