Template context debugger with (I)Pdb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from django.template import Library, Node

register = Library()

try:
    import ipdb as pdb
except ImportError:   
    import pdb

class PdbNode(Node):
    def render(self, context):
        pdb.set_trace()
        return ''
@register.tag
def pdb_debug(parser, token):
    return PdbNode()

Comments

showell (on June 4, 2009):

This is an interesting idea. I am using pydev now, and I'm relatively new to that environment, and I am wondering if there's a similar way to hook into pydev's debugger.

#

jsandell (on June 5, 2009):

showell: I don't know if this has changed, as I haven't used Eclipse for a couple of years, but from what I can recall all you have to do is make sure the pydev directory is in your Django application's python path. i.e., put this:

import sys; sys.path.insert(0, '/path/to/pydev')

below the line:

from django.template import Library, Node

in this snippet.

Hope this helps.

(Note, I bet it'll work with WinPdb as well)

#

showell (on June 17, 2009):

See http://www.djangosnippets.org/snippets/1571/ for a pydev variation. jsandell, it seems you don't need to actually add pydev to the path if you launch your app using pydev's debugger.

#

(Forgotten your password?)

You may use Markdown syntax here, but raw HTML will be removed.