Давайте представим, что мы имеем эти модели Django:Есть ли событие или другой способ вызова функции Javascript, когда Django Admin Popup (зеленый значок плюс) завершается?
class Band(models.Model):
name = models.CharField(max_length=256, default="Eagles of Death Metal")
class Song(models.Model):
band = models.ForeignKey(Band)
При использовании администратора для управления этими моделями, то band
поле связано с Widget
вынесенным Джанго как select
HTML элемента.
администратора Django также добавляет значок зеленый плюс рядом с select
, щелкнув по нему откроется всплывающее окно, в котором пользователю представлено с Form
, чтобы добавить новую группу. При нажатии кнопки save в этом всплывающем окне новое имя группы сохраняется в БД и автоматически присваивается значению select
.
Мы полагаемся на некоторые JavaScript будет запускаться каждый раз select
изменения значения. В настоящее время он прослушивает событие change
указанного элемента, который отлично работает, когда пользователь щелкает значение непосредственно в меню, предложенном select
.
К сожалению, когда это select
заполняется через функциональные возможности администратора Popup, это кажется change
событие не уволили за select
, как наш обратный вызов не выполняется, даже если значение элемента на самом деле изменилось.
Есть ли еще одно событие, которое мы можем прослушать, чтобы получить такое же поведение, чем когда пользователь щелкает значение непосредственно из списка?
Это тот же ответ, который я отправил в список рассылки Django Users, но Stack Overflow лучше использовать для этого фрагмента кода, который будет использоваться или обсуждаться. Вот этот дискуссионный поток: https://groups.google.com/d/msg/django-users/7sIM2-9XirY/d6Yr5_fFBwAJ –
Большое спасибо, это позволило реализовать функциональность. Мы используем ** Django 1.8 **, который требует только двух небольших изменений: 'rejectAddAnotherPopup' следует переименовать в' rejectAddRelatedObjectPopup', и он должен взять (и переслать) дополнительный аргумент ('newRepr'). –
Открыт [еще один вопрос, связанный с всплывающим именем администратора Django] (http://stackoverflow.com/q/33941944/1027706), если у вас есть ключ? –