根据用户输入更改wagtail管理表单字段

时间:2017-09-18 09:55:12

标签: wagtail

我有一个名为' Block'的模型,它有多个字段:

  • 类型。这是一个下拉列表,您可以在其中选择3个选项。
  • URL
  • 搜索

根据类型字段,必须显示URL或搜索。 搜索字段需要使用变量:API_HOST执行搜索。 我已经编写JS来使表单动态化,并且我已经扩展了wagtailadmin / pages / edit.html模板以注入JS。 但是,我不确定如何将API_HOST(在dev.py中定义)传递给模板。

dev.py

tablearry=(PRODUCT SALES EMPLOYEES)


for i in "${tablearry[@]}"
 do
  table_nm=$i

sqlplus -s admin/admin_123@extend12 <<EOF 
SPOOL /data2/interfaces/scripts/${table_nm}.CSV;
set colsep ,
set feedback off 
set trimspool on
set linesize 5000
set pagesize 1000
set heading on
set term off 
set verify off 
set timing off
set echo off
select * from ${table_nm} where PROD_ID = '1618' AND PROD_SER_NUM = 21 ;
spool off;
EXIT;
EOF
echo "end"


done

wagtailadmin /页/ edit.html:

API_HOST = "http://localhost:8000/"

blocks_hook.js

{% extends "wagtailadmin/pages/edit.html" %}
{% block extra_js %}
    {{ block.super }}

    <script>
        var api_host = "{{api_url}}";
        console.log("api_host:", api_host);
    </script>
    <script src="/static/js/blocks_hook.js">
    </script>
{% endblock %}

我该如何应对这种情况?

1 个答案:

答案 0 :(得分:0)

我设法使用Wagtail提供的insert_editor_js hook mechanism来解决此问题。

确保您在方法中传递的变量(@ hooks.register)实际存在于您的配置文件中,否则钩子系统崩溃而没有任何可操作的调试信息。