Въпрос за Django 2.0 с Select2 на кутията. Как да направите за модели с ForeignKey
(autocomplete_fields
) многостъпкови избори в стандартния Django Admin?
Моето приложение tours
е:
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
:
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',)
Би било хубаво, след като изберете стойност в полето Country
— оставете в полето Resort
само стойности, които се отнасят до това Country
(опция inlines
в countries/admin.py
).
Подобна демонстрация с PHP + jQuery.
tours/admin.py
extra_context сCountry
иResort
идентификатори и твърдо кодиран администраторски шаблон (добавете малко jQuery код за поле за промяна и изградете отново масив от идентификатори в тях). - person koddr   schedule 16.01.2018