Bill Hewitt wrote:
Ive got a need to call a DTML Method from a DTML Method I call in a Python Product:
In the Python File, I use to call the Creation Form (a DTML Method):
manage_addCampusForm = HTMLFile('campus_dtml/CampusAddForm',globals())
This is a module level variable, not a class attribute, right?
manage_addCampusForm needs to call:
tableSubmitButtons = HTMLFile('campus_dtml/tableSubmitButtons',globals())
Which is in the same directory as "manage_addCampusForm".
That don't matter.
Where do I put the second method above so that the Python Product/first DTML method finds it? so far I have tried to just add it to the bottom of the file and in the Class Definition - but I get an error that the "tableSubmitButtons" method cant be found....
If I understand what you're trying you have at least two choices: *first* pass explicitly the rendered tableSubmitButtons to manage_addCampusForm: _manage_addCampusForm = DTMLFile(...) _tableSubmitButtons = DTMLFile(...) def manage_addCampusForm(...) : return _manage_addCampusForm(..., buttons=_tableSubmitButtons(...)) and in the CampusForm DTML: <dtml-var buttons> *second* add an extra constructor, so manage_addCampusForm can locate tableSubmitButtons: from YourModule import manage_addCampusForm from YourModule import manage_addCampus from YourModule import tableSubmitButtons context.registerClass(..., constructors=(manage_addCampusForm, manage_addForm, tableSubmitButtons), ...) Just curious, why you separate the form from the submit buttons? HTH -- //// (@ @) ----------------------------oOO----(_)----OOo-------------------------- <> Ojo por ojo y el mundo acabara ciego /\ Alexis Roda - Universitat Rovira i Virgili - Reus, Tarragona (Spain) -----------------------------------------------------------------------