Приветствую!
Имеем чистый проект с Django 2.0.1 на Python 3.6.3.
Вопрос: как сделать выборку одного поля ForeignKey, в зависимости от выбранного элемента в другом поле (тоже ForeignKey)? Знаю, что теперь за такие поля в админке отвечает Select2, но так и не смог найти развёрнутого описания всех возможностей/методов, касательно адмнки Django (про JS-скрипт всё итак ясно).
=== EDITED ===
Сейчас у меня вот такая структура:
tours/models.py:
class Tours(models.Model):
country = models.ForeignKey(Countries, on_delete=None, default=None)
resort = models.ForeignKey(Resorts, on_delete=None, null=True, default=None)
...
tours/admin.py:
@admin.register(Tours)
class ToursAdmin(admin.ModelAdmin):
list_display = ('country', 'resort',)
autocomplete_fields = ('country', 'resort',)
countries/models.py:
class Countries(models.Model):
name = models.CharField(max_length=255)
class Resorts(models.Model):
name = models.CharField(max_length=255)
country = models.ForeignKey(Countries, on_delete=models.CASCADE, default=None)
countries/admin.py:
class ResortsInlineAdmin(admin.StackedInline):
model = Resorts
@admin.register(Countries)
class CountriesAdmin(admin.ModelAdmin):
list_display = ('name',)
search_fields = ('name',)
inlines = [ResortsInlineAdmin,]
@admin.register(Resorts)
class ResortsAdmin(admin.ModelAdmin):
list_display = ('name', 'country',)
search_fields = ('name',)
В админке модель
Resorts
присоединяется к
Countries
, как
inlines = [...]
, то есть при создании объекта
Countries
— к ней же линкуются все её
Resorts
.
Выбрали страну в поле Countries
— в поле Resorts
уже все отсортировано только по этой стране. Иначе — выводится полностью всё. Нашёл пример необходимого функционала на PHP + jQuery — webersoft.ru/lab/sqlcelect
Буду рад толковым комментариям и юзкейсам.
Заранее спасибо!