简而言之:
根据其他字段的输入,我想在django admin中填写一些表单字段,然后单击“保存”按钮。
较长版本:
我有2个模型, # many2one -> one2many -> mapped('many2one') this will collect of the records without duplication from the o2m field.
# contract -> contract lignes -> products
self.contrat_lignes_id.ligne_ids.mapped('product_id').ids
和SteamGame
,它们具有GameInfo
的外键。 SteamGame
表每天都会被Steam上列出的 all 游戏填充一次,通过获取和解析http://api.steampowered.com/ISteamApps/GetAppList/v0002/,SteamGame
表将通过管理员手动填充现场。当添加到GameInfo
时,我从GameInfo
中选择游戏。我为自己添加了一些字段,供我添加信息,选择游戏并获取该信息的https://store.steampowered.com/api/appdetails?appids=GAMEID&l=en后,我想填充一些字段。
我可以使用一些神奇的Django函数来完成此任务吗?或有关如何执行此操作的其他建议?
谢谢!
答案 0 :(得分:1)
您可以使用javascript来实现。
在您的管理模型上,添加此代码以调用自定义javascript:
class MyAdmin(admin.ModelAdmin):
class Media:
js = ('/static/js/myMagicJavascriptThatDoesAllThisStuff.js',
)
JS将允许用户在保存之前查看要保存的内容。 如果要在保存后提取信息,则应覆盖管理保存功能
答案 1 :(得分:1)
您可以传递一个javascript文件,并使用查询来进行ajax调用,然后使用jquery将值附加到表单中。
class HistoryConfigurationAdmin(admin.ModelAdmin):
class Media:
js = ("customjs/yourjsfile.js",)
并在您项目的静态文件夹中创建一个yourjsfile.js。请注意,在django admin中使用jquery而不是使用$(document)。准备好使用“ jq”代替“ $”符号