Получить внешние данные и заполнить форму в администраторе Django - PullRequest
0 голосов
/ 12 декабря 2018

Вкратце:

Я хотел бы заполнить некоторые поля формы в django admin, прежде чем нажимать кнопку сохранения, на основе ввода в другое поле.

Более длинная версия:

У меня есть 2 модели, SteamGame и GameInfo, для которых ForeignKey равен SteamGame.Таблица SteamGame заполняется один раз в день с помощью всех игр, перечисленных в Steam, путем извлечения и анализа http://api.steampowered.com/ISteamApps/GetAppList/v0002/, таблица GameInfo заполняется вручную с помощью сайта администратора.При добавлении в GameInfo я выбираю игру из SteamGame.Некоторые поля предназначены для информации, которую я сам добавляю, некоторые поля, которые я хочу заполнить после выбора игры и получения https://store.steampowered.com/api/appdetails?appids=GAMEID&l=en для этой информации.

Существуют ли какие-то волшебные функции Django, которые я могуиспользовать для этого?Или какие-либо другие предложения о том, как это сделать?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

вы можете передать файл javascript и, используя запрос, вы можете сделать ajax-вызов и добавить значения в форму, используя jquery.

 class HistoryConfigurationAdmin(admin.ModelAdmin):
       class Media:
              js = ("customjs/yourjsfile.js",)

и создать yourjsfile.js в статической папке вашего проекта.Обратите внимание на использование jquery в django admin вместо использования $ (document). Уже мы используем «jq» вместо символа «$»

0 голосов
/ 12 декабря 2018

Вы можете использовать javascript для достижения этого.

В вашей модели администратора добавьте это, чтобы вызвать пользовательский javascript:

class MyAdmin(admin.ModelAdmin):

    class Media:
        js = ('/static/js/myMagicJavascriptThatDoesAllThisStuff.js', 
)

JS позволит пользователю увидеть, что будетбыть сохраненным ДО сохранения.Если вы хотите получить информацию после сохранения, вы должны переопределить функцию сохранения администратора

...