0

简单的问题。我称表单ajax。

<body>
<div id="head"><a class="button">CLICK</a></head> - maybe head place
<div id="content"><a class="button">CLICK</a></head> - in content, other place

<form style="opacity:0;" metod="POST">
<input type="text" name="phone">
<input type="{% if id="content" %}text{% else %}hidden{% endif %}" name="phone">
</form>
</body>

我的问题:{% if id="content" %} - 如何实现

4

1 回答 1

0

默认情况下无法识别模板中的表单。

根据dir(MyForm())你只有这些选项:

'files': '{}',
'is_bound': 'False',
'error_class': '<class 'django.forms.util.ErrorList'>',
'empty_permitted': 'False',
'fields': '{}',
'initial': '{}',
'label_suffix': ':',
'prefix': 'None',
'_changed_data': 'None',
'data': '{}',
'_errors': 'None',
'auto_id': 'id_%s',

您可以通过这一行确定表单的类名,尽管这是“私有”(您可以通过下划线判断)并且(不幸的是)模板中的表单无法访问:

MyForm.__class__.__name__

因此,您有几个选项可以在模板中标识您的表单。剥那只猫皮的方法很多。我只会介绍我最近使用的一个非常便宜的解决方案:

表格.py

class MyForm(forms.Form):
    my_form_name = "one" #add attr to form class
    ...

模板

{{form.my_form_name}}

不是超级聪明,但非常健壮。


很明显,对于您的用例,您可以说:

<a class="two"><input type="{% if form.my_form_name = "one" %}text{% else %}hidden{% endif %}"></a>
于 2012-11-14T11:38:29.840 回答