atitpatel
atitpatel

Reputation: 3184

How to populate one dropdown from the other in django dynamically using AJAX/DAJAX/DAJAXICE/Simple Javascript?

I have searched enough of the examples but couldn't get the satisfactory result. Please explain with all the necessary code. I am very poor at AJAX. I tried to use DAJAXICE in my code and got little success but didn't work with passing parameters. I am using Django 1.6 Dajaxice 0.7 Dajax 0.9. Any way you feel the easiest is okay but please explain with all the code. TIA.

Upvotes: 0

Views: 310

Answers (1)

jacekbj
jacekbj

Reputation: 631

If all you need is a simple Django view to fetch some data with AJAX, take a look at django-braces AjaxResponseMixin. Below is a code sample which returns list of objects ids and their names:

from django.views.generic import View
from braces import views

class SomeView(views.JSONResponseMixin, views.AjaxResponseMixin, View):
    def get_ajax(self, request, *args, **kwargs):
        my_objects = MyObject.objects.all()
        json_dict = {
            'ids': [x.id for x in my_objects],
            'names': [x.name for x in my_objects]
        }
        return self.render_json_response(json_dict)

Then use jQuery ajax to make the query from your template and populate your fields.

If you're not familiar with Class Based Views, your url for this view could be:

url('^objects/(?P<some_id>[0-9]+)/$', SomeView.as_view())

then in get_ajax you can access self.kwargs['some_id'] to filter objects.

Upvotes: 0

Related Questions