felix wrote:
> class ContactAdmin(Admin):
>
> form = EditContactForm
>
>
> EditContactForm has a save method that is never called by the Admin
>
> but its clean() function does get called
>
> 60 def clean(self):
> 61 import pdb; pdb.set_trace()
>
> my confusion is that due to the snakey admin code the form class is created
> using a different name and is created in the scope of a different module.
> even though the class is explicitly specified in my Admin, that name is
> replaced with class_name = model.__name__ + 'Form'
>
> self.__class__
> (Pdb) <class 'django.forms.models.ContactForm'>
> self
> (Pdb) <django.forms.models.ContactForm object at 0x23c16f0>
> self.save
> (Pdb) <bound method ContactForm.save of <django.forms.models.ContactForm
> object at 0x23c16f0>>
>
> dir(self)
> (Pdb) ['Meta', '__class__', '__delattr__', '__dict__', '__doc__',
> '__getattribute__', '__getitem__', '__hash__', '__init__', '__iter__',
> '__metaclass__', '__module__', '__new__', '__reduce__', '__reduce_ex__',
> '__repr__', '__setattr__', '__str__', '__unicode__', '__weakref__',
> '_changed_data', '_errors', '_get_changed_data', '_get_errors',
> '_get_media', '_html_output', '_meta', 'add_initial_prefix', 'add_prefix',
> 'as_p', 'as_table', 'as_ul', 'auto_id', 'base_fields', 'changed_data',
> 'check_for_account', 'clean', 'clean_email', 'data', 'declared_fields',
> 'empty_permitted', 'error_class', 'errors', 'fields', 'files', 'full_clean',
> 'has_changed', 'initial', 'instance', 'is_bound', 'is_multipart',
> 'is_valid', 'label_suffix', 'media', 'non_field_errors', 'prefix', 'save',
> 'save_from_request', 'validate_unique', 'will_save']
>
> I can see my clean_email method and other methods that I defined. it
> *is*my class, but its name and module have been changed which makes
> debugging
> quite difficult.
>
> this leads me on a wild goose-chase trying to figure out why the wrong form
> was instantiated.
>
> is there any reason that normal classes aren't used ? there doesn't seem to
> be any use of passing in multiple bases
>
> and I still don't know why save() isn't called by the admin
Your form's save() will be called only if the form is valid. Did you
verify that the form instance you are debugging is valid? Can you
dpaste your form code?
-RD
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---