On Aug 14, 12:14 pm, Léon Dignòn <leon.dig...@gmail.com> wrote:
> Hi,
>
> I try override a ModelForms init to claim the variable instance. After
> that I call super.__init__().
> It's almost working, but there is no form shown in the browser.  Any
> ideas what might be wrong?
>
> class ProfileForm(ModelForm):
>     first_name = forms.CharField(required=False, max_length=30)
>     last_name = forms.CharField(required=False, max_length=30)
>
>     class Meta:
>         model = UserProfile
>         exclude = ('user',) # User will be filled in by the view.
>
>     def __init__(self, data=None, files=None, auto_id='id_%s',
> prefix=None, initial=None,
>                  error_class=None, label_suffix=':',
> empty_permitted=False, instance=None):
>         f = open('debug.txt', 'w')
>         f.write("%s \n\n-----\n\n" % instance.user.first_name) # Bob
>         f.write("%s \n\n-----\n\n" % instance.user.last_name) # Marley
>         super(ProfileForm, self).__init__(data, files, auto_id,
> prefix, initial, error_class, label_suffix, empty_permitted, instance)

Rather than listing all the key word arguments (kwargs) like that, you
are better doing it like this:

import logging # probably a better way than writing to debug.txt, but
clearly it is personal choice

def __init__(self, *args, **kwargs):
    instance = getattr(kwargs, 'instance')
    logging.debug("First name: %s" % instance.user.first_name) # I
like to know what it thinks it is printing!
    logging.debug("Last name: %s" % instance.user.last_name) #
obviously you can change str if you like
    super(ProfileForm, self).__init__(data, *args, **kwargs)

I don't know if this will fix your problem (hard to say without
visibility of the view), but it may be that you have forgotten one of
the kwargs. If you want to add extra parameters, or set them to
specific values you can still do this before calling init.

HTH,
Em

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to