Django Userena 'OrderedDict' object has no attribute 'keyOrder'

773 vues
Accéder directement au premier message non lu

willyhakim

non lue,
15 avr. 2015, 18:41:4715/04/2015
à django...@googlegroups.com
Hi everyone,
I am using django-userena and extend the form class to add some of my own fields. I followed
the demo and still get the above error. Anyone know what I am doing wrong?

class SignupFormExtra(SignupForm):
    """ 
    A form to demonstrate how to add extra fields to the signup form, in this
    case adding the first and last name.
    
    """
    first_name = forms.CharField(label=_(u'First name'),
                                 max_length=30,
                                 required=True)

    last_name = forms.CharField(label=_(u'Last name'),
                                max_length=30,
                                required=False)
    industry = forms.CharField(label=_(u'Industry'),
                                    max_length=50,
                                    required=False)
    title = forms.CharField(label=_(u'title'),
                                    max_length=50,
                                    required=False)

    def __init__(self, *args, **kw):
        """
        
        A bit of hackery to get the first name and last name at the top of the
        form instead at the end.
        
        """
        super(SignupFormExtra, self).__init__(*args, **kw)
        # Put the first and last name at the top
        new_order = self.fields.keyOrder[-2]
        new_order.insert(0, 'first_name')
        new_order.insert(1, 'last_name')
        new_order.insert(2, 'industry')
        new_order.insert(3, 'title')
        self.fields.keyOrder = new_order

    def save(self):
        """ 
        Override the save method to save the first and last name to the user
        field.
        """
        # First save the parent form and get the user.
        new_user = super(SignupFormExtra, self).save()

        new_user.first_name = self.cleaned_data['first_name']
        new_user.last_name = self.cleaned_data['last_name']
        new_user.industry = self.cleaned_data['industry']
        new_user.title = self.cleaned_data['title']
        new_user.save()

        # Userena expects to get the new user from this form, so return the new
        # user.
        return new_user

Pavel Kuchin

non lue,
16 avr. 2015, 05:13:2316/04/2015
à django...@googlegroups.com
Hi Willy, 

Can you send an error, because I see only the SignupFormExtra class.

Yours sincerely,
Pavel

четверг, 16 апреля 2015 г., 1:41:47 UTC+3 пользователь willyhakim написал:

Vijay Khemlani

non lue,
16 avr. 2015, 08:32:0116/04/2015
à django...@googlegroups.com
In the title: "'OrderedDict' object has no attribute 'keyOrder'"

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a4c2a9d4-b9f2-43bc-b7bc-537e9e17c88b%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Pavel Kuchin

non lue,
16 avr. 2015, 08:58:2416/04/2015
à django...@googlegroups.com
Hi Vijay,

Looks like Django does not use SortedDict anymore
(https://github.com/django/django/commit/07876cf02b6db453ca0397c29c225668872fa96d#django/forms/forms.py)
The self.fields.keyOrder does not work anymore, django-userena has an
obsolete documentation.
Try to remove def __init__(self, *args, **kw): from your class,
ordering should be based on fields definition order.

Best regards,
Pavel
> You received this message because you are subscribed to a topic in the
> Google Groups "Django users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/django-users/5HxEahhNuSo/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> django-users...@googlegroups.com.
> To post to this group, send email to django...@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CALn3ei0YPZWLO7wZH7sxw98xQ_vLxpARBUmUUz0-eR8sXkiUjQ%40mail.gmail.com.

Vijay Khemlani

non lue,
16 avr. 2015, 09:04:4116/04/2015
à django...@googlegroups.com
Why are you talking to me? I'm not OP xD

Pavel Kuchin

non lue,
16 avr. 2015, 09:08:1116/04/2015
à django...@googlegroups.com

willyhakim

non lue,
16 avr. 2015, 12:46:2516/04/2015
à django...@googlegroups.com
Thank you guys.
Répondre à tous
Répondre à l'auteur
Transférer
0 nouveau message