On Mon, 2007-09-10 at 18:25 -0500, Joseph Kocherhans wrote:
> There's a ticket in Trac to override the BaseForm in the admin
> add/change views of the newforms admin branch. [1] It seems to me that
> it would also be useful to override the actual Form object, and to do
> so based on information in the request. I think we should add a couple
> of methods to ModelAdmin, form_add and form_change, that each take a
> request object. The form_change method should also take the object
> being edited. Code is probably a little clearer, so:
> 
>     def form_add(self, request):
>         fields = flatten_fieldset(self.fielsets_add(request))
>         return forms.form_for_model(self.model, fields=fields,
> formfield_callback=self.formfield_for_dbfield)
> 
>     def form_change(self, request, obj):
>         fields = flatten_fieldset(self.fielsets_change(request, obj))
>         return forms.form_for_model(self.model, fields=fields,
> formfield_callback=self.formfield_for_dbfield)
> 
> Do we also want to allow a 'form' and a 'base_form' attribute on
> ModelAdmin? If we did, the default form_add and form_change methods
> could look for form first, and base_form second. It would probably be
> best to only allow one or the other though. I feel like both would be
> convenient, but if the methods are there, if feels like there would be
> 3 or more ways to do it. Is the convenience of attributes worth the
> extra complexity? My gut reaction is no.

I agree, for much the same reason: pick one way that looks flexible
enough. The two methods look reasonable.

I'm not sure why you want both "form" *and* "base_form" in your
attribute approach, but if they're both required (plus maybe add and
change are different attributes?) I think it's another good argument for
the method-based approach. Too many attributes starting to spring up to
handle all possibilities when all you really need at the end of the day
is a form class.

Regards,
Malcolm

-- 
Despite the cost of living, have you noticed how popular it remains? 
http://www.pointy-stick.com/blog/


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to