Я решил эту проблему не с предложенными библиотеками (с простым javascript), но существует другая проблема: когда я изменил страну - выбор региона меняется автоматически, но я не могу сохранить новое значение региона (когда другой регион из той же страны -не проблема), потому что ошибка Выберите правильный выбор.Этот выбор не является одним из доступных вариантов.
Модели в первом вопросе одинаковы, но значение по умолчанию для модели страны равно 1.
Мой первый способ - изменить страну, выбрать черезФункция formfield_key,
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'region':
kwargs["queryset"] = Region.objects.filter(country=self.country)
return db_field.formfield(**kwargs)
, но я не знаю, является ли сохранение объектов или редактирование объектов.
Здесь писал - лучший способ - переход через форму итеперь у меня есть код:
class Item(models.Model):
country = models.ForeignKey(Country, default=1)
region = models.ForeignKey(Region, related_name='')
class ItemAdmin(admin.ModelAdmin):
form = CustomItemForm
prepopulated_fields = {"alias": ("name",)}
list_filter = ('country', 'category',)
class CustomItemForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
try:
country = kwargs['instance'].country
except KeyError:
country = 1
super(CustomItemForm, self).__init__(*args, **kwargs)
self.fields['region'].queryset = Region.objects.filter(country=country)