Your best bet is to use django-tastypie + backbone-tastypie. django-tastypie provides REST API access to your Django models and data, while backbone is a client-side javascript framework that makes interacting with your tastypie backend easy.
The downside to doing things this way is that there is a heavy learning curve.
More information here: http://readthedocs.org/docs/django-tastypie/en/latest/tools.html?highlight=backbone
I've got a projcet using dajaxice in production currently, and it gets significant user traffic. The downside to using Dajaxice is that it hasn't been maintained in a while. There are quite a few bugs (including performance issues) that make it difficult to use in any production system that gets real traffic. In my case, I see that even the simplest dajaxice views add a heavy 1000ms (1 second) performance penalty to almost any code I write.
NOTE: I emailed the maintainer of dajaxice, and he told me that he was planning on updating dajaxice later this year when he gets more free time. Hopefully this is the case.
The upside to using dajaxice is that the learning curve is low, and it helps keep your code clearly organized (eg: you put all your ajax into ajax.py, and you don't have to write much additional JS code).
My official recommendation is:
- Use Dajaxice if this is a simple application that won't be seeing significant traffic, and performance doesn't really matter.
- Use django-tastypie + backbone-tastypie if you're developing a serious application and need something reliable.