применить макрос к Flask FormField - PullRequest
0 голосов
/ 04 июня 2018

У меня есть формы в колбе, например:

class form1(Form):
    count1=IntegerRangeField('count1')
    count2=IntegerRangeField('count2')

class form2(Form):
    Incoming=FormField(form1)
    Outgoing=FormField(form1)

В шаблоне я отображаю поля с помощью цикла, который запускает макрос в зависимости от типа поля:

{% macro render(form) %}
<script type='text/javascript'>
function updateRangeInput(elem) {
  $(elem).next().val($(elem).val());
}
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body>
{% if field.type in ["IntegerRangeField","FormField"] %}
{{field.name}}
{{field(min=0, max=25, oninput="updateRangeInput(this)")}}
<output><script> document.write() </script > </output>
{% else %}
</body>
{% endmacro %}

Макрос не отображает целое число ползунка, выбранное для IntegerRangeFields (макрос), но поля отображаются на странице.Как я могу получить IntegerRangeFields, лежащие в основе FormFields, для применения макроса?

примечание: если я использовал IntegerRangeFields непосредственно в месте FormField, он работает.

1 Ответ

0 голосов
/ 05 июня 2018

Эта проблема связана с фактическим доступом к базовым полям внутри «подчиненной формы», а не к самому FormField.

Мы можем применить макрос к count1 и count2 через:

{% for field in form.Incoming.form %}
{{field(min=0, max=25, oninput="updateRangeInput(this)")}}
<output><script> document.write() </script > </output>
{% endfor %}
...