Skip to content
Advertisement

Chained Selects in Django [Module: django-smart-selects]

I’m trying to use the django-smart-selects Module in order to create dependent dropdown lists. I’ve followed the documentation and defined models in which I used the ‘ChainedForeignKey’ in order to define a link between my companies and my products.

models.py

JavaScript

Then I have defined a form :

forms.py

JavaScript

The data is retrieved from my database and I can select a company from the first dropdown list. The second list (Product), though, is locked. I’ve associated products to companies in my database ( using the foreign key ).

If you guys have any ideas how I could solve that problem, that would be really good. I’ve searched for a similar issue but I couldn’t find anything like it.

Here is a screenshot of the form.

Here is a screenshot of the form

Advertisement

Answer

I used JS Lint brach (https://github.com/digi604/django-smart-selects/tree/js-unlinting-fixes) and it solved the issue.

Reference : https://github.com/digi604/django-smart-selects/issues/258

EDIT: Adding step by step instructions to address the issue:

Step 1: Remove existing version of django-smart-selects. Type pip uninstall django-smart-selects in the terminal.

Step 2: Install the JS-lint branch by typing

JavaScript

Step 3: Add 'smart_selects', to the INSTALLED_APPS list in settings.py.

Step 4: Add from smart_selects.db_fields import ChainedForeignKey in models.py of your app.

Step 5: Add the smart_selects urls into your project’s urls.py. This is needed for the Chained Selects and Chained ManyToMany selects. For example:

JavaScript

Step 6: You will also need to include jQuery in every page that includes a field from smart_selects. Add USE_DJANGO_JQUERY = True in your project’s settings.py.

Step 7: Add {{ form.media.js }} just before {{ form.as_table }} in your HTML file so that your Django form derived from the Django model reflects the smart-selects features.

I’m using Python 2.7.10 and Django 1.11.

All the best!

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement