All, I have a MySQL table "category" with the following schema: id number name char parent_id number The table is self-referencing in that the parent_id points back to an ID. This structure renders a hierarchical listing of categories, with the root categories having a parent_id of -1. I have a SQL method to select category names and IDs by their parent ID: ID: Query_category_by_parid Arguments: parent_id:required:int Query: select id, name from category where <dtml-sqltest parent_id type=int> order by name I have a DTML method which calls itself recursively to find a list of categories starting with the specified parent: ID: list_categories <dtml-in "Query_category_by_parid(parent_id=parent_id)"> <p><dtml-var name> (<dtml-var id>)</p> <dtml-var "list_categories(parent_id=id)"> </dtml-in> This however, doesn't work. It appears that the second call to Query_category_by_parid, within the second call to list_categories, fails. Here is the URL: /list_categories?parent_id=-1 This is the error I receive: Error Type: NameError Error Value: Query_category_by_parid And here is the traceback: Traceback (innermost last): File /usr/local/src/Zope-2.0.1/lib/python/ZPublisher/Publish.py, line 214, in publish_module File /usr/local/src/Zope-2.0.1/lib/python/ZPublisher/Publish.py, line 179, in publish File /usr/local/src/Zope-2.0.1/lib/python/Zope/__init__.py, line 201, in zpublisher_exception_hook (Object: ElementWithAttributes) File /usr/local/src/Zope-2.0.1/lib/python/ZPublisher/Publish.py, line 165, in publish File /usr/local/src/Zope-2.0.1/lib/python/ZPublisher/mapply.py, line 160, in mapply (Object: list_categories) File /usr/local/src/Zope-2.0.1/lib/python/ZPublisher/Publish.py, line 102, in call_object (Object: list_categories) File /usr/local/src/Zope-2.0.1/lib/python/OFS/DTMLMethod.py, line 145, in __call__ (Object: list_categories) File /usr/local/src/Zope-2.0.1/lib/python/DocumentTemplate/DT_String.py, line 502, in __call__ (Object: list_categories) File /usr/local/src/Zope-2.0.1/lib/python/DocumentTemplate/DT_In.py, line 691, in renderwob (Object: Query_category_by_coid_parid(parent_id=parent_id)) File /usr/local/src/Zope-2.0.1/lib/python/DocumentTemplate/DT_Util.py, line 321, in eval (Object: list_categories(parent_id=id)) File <string>, line 0, in ? File /usr/local/src/Zope-2.0.1/lib/python/OFS/DTMLMethod.py, line 141, in __call__ (Object: list_categories) File /usr/local/src/Zope-2.0.1/lib/python/DocumentTemplate/DT_String.py, line 502, in __call__ (Object: list_categories) File /usr/local/src/Zope-2.0.1/lib/python/DocumentTemplate/DT_In.py, line 633, in renderwob (Object: Query_category_by_coid_parid(parent_id=parent_id)) File /usr/local/src/Zope-2.0.1/lib/python/DocumentTemplate/DT_Util.py, line 321, in eval (Object: Query_category_by_coid_parid(parent_id=parent_id)) File <string>, line 0, in ? NameError: (see above) I have a feeling I'm missing something obvious, but I can't find it. Any help would be greatly appreciated. Cheers, Jim
Jim Cain wrote:
All,
ID: list_categories
<dtml-in "Query_category_by_parid(parent_id=parent_id)"> <p><dtml-var name> (<dtml-var id>)</p> <dtml-var "list_categories(parent_id=id)"> </dtml-in>
Just a guess, but try to name the id column simething else, like current_id. It is possible that it gets some other id instead the one you expect (like the attribute of folder or method) ---------- Hannu
On Wed, 24 Nov 1999, Hannu Krosing wrote:
Jim Cain wrote:
All,
ID: list_categories
<dtml-in "Query_category_by_parid(parent_id=parent_id)"> <p><dtml-var name> (<dtml-var id>)</p> <dtml-var "list_categories(parent_id=id)"> </dtml-in>
Just a guess, but try to name the id column simething else, like current_id.
It is possible that it gets some other id instead the one you expect (like the attribute of folder or method)
I've tried changing that, but unfortunately it makes no difference. Jim
participants (2)
-
Hannu Krosing -
Jim Cain