When "starting" the wizard, the "current" step is the *first* step. The "first" step is the first in the list of *currently enabled* steps. The list of "currently enabled" steps is constructed by checking each step wrt. condition_dict.
In other words; obtaining the current step implicitly runs the callables in condition_dict, so doing that from one of the callables leads to infinite recursion. Personally, I'm not sure whether this should be considered a bug; the wizard implementation could probably be reorganised to only check condition_dict until a "first" step was found; but the resulting behaviour would be somewhat difficult to describe; accessing wizard.steps.current from the callables in condition_dict would still be unsafe from those callables checked in order to find the "first"; i.e. in the general case, the problem cannot be solved. On the other hand, the current behaviour/limitation does not appear to be documented... I have a hard time imagining a scenario where checking the current step makes sense for determining what steps are available --- the step being checked for would clearly not be visited on every run-through of the wizard, but if that step is enabled based on some different conditional, reusing that might make more sense? (... or at least work with the current wizard.) A possible workaround may be to store some data on an instance member on the wizard object --- or on the wizard objects storage --- in process_step(), and then check that in the callable. On Friday, 5 October 2012 17:16:02 UTC+2, Scott Woodall wrote: > > I searched the bug tracker and the django users with no results, so is > what I'm seeing a bug? > > I have a form wizard that is using a callable within condition_dict. If I > try to access "wizard.steps.current" inside the callable, I get the > following error: > > "maximum recursion depth exceeded in __instancecheck__" > Exception Location: > /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.py > > in _reconstruct, line 307 > > Just trying to figure out if I should file a bug report or I'm doing > something wrong? > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.

