Найти - Пользователи
Полная версия: Django-админка: показывать список районов в зависимости от города
Начало » Django » Django-админка: показывать список районов в зависимости от города
1
fanat1k
Есть адрес, город, район города.
Можно ли заставить админку при добавлении адреса показывать районы города, соответствующие выбранному городу, а не весь список районов. Возникает вероятность ошибки добавления района, который принадлежит другому городу.

модель:
class District(models.Model):
name = models.CharField()

class City(models.Model):
name = models.CharField()
district = models.ManyToManyField(District)

class Address(models.Model):
street = models.CharField()

city = models.ForeignKey(City)
district = models.ForeignKey(District)
Правильно ли я определил модель ? Внешний ключ district= models.ForeignKey(District) указывает на весь список районов, соответственно админка мне его и показывает.
Я подозреваю что такие вещи решаются асинхронными запросами (в зависимости от выбора пользователя ему показывается тот или иной набор параметров, действий и т.д.), что и придется мне делать в форме добавления адреса.
Спасибо.
regall
Такое нужно делать с помощью Ajax. Написать вид, который в request принимает параметром город и возвращает список районов города. А в селекте города на OnChange очищать список районов и заливать новый.
fanat1k
А эту вьюху можно будет использовать в админке ? Если да, то как ?
regall
fanat1k
А эту вьюху можно будет использовать в админке ? Если да, то как ?
Можно, нужно сделать view, добавить его в url'ы, и с JavaScript делать Ajax запрос по соответствующему URL.
fanat1k
regall
Можно, нужно сделать view, добавить его в url'ы, и с JavaScript делать Ajax запрос по соответствующему URL.
Все равно не понял как это дело к админке прикрутить. Ну да ладно, на даный момент стоит вопрос в реализации интерфейса для пользователя. Когда это сделаю и дело дойдет до админки, может наступит прояснение :)

Спасибо за помощь, вопрос закрыт (надеюсь :) )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB