Django表单中内置的as_html,as_ul,as_p方法对我不起作用,内置{{field}}
呈现也不起作用,所以我正在尝试编写自定义表单呈现。
这是我到目前为止所拥有的:
<input id="id_{{field.html_name}}"
type="text"
name="{{field.html_name}}"
placeholder="{{field.label}}" <!-- "placeholder" is really the only reason I need to do a custom implementation -->
value="{{ XXX }}" <!-- what goes here? -->
maxlength="30" />
问题是,应该在value属性中添加什么(上面标记为XXX
)?
我已经完成了一些调查,BoundField
似乎不支持value
或data
属性。如果重要,我正在使用ModelForms
答案 0 :(得分:3)
value
属性降落在主干in 2010中。该补丁显示了如何使用表单/数据检索值(不幸的是,在模板中不简单)。您可能会发现有用的故障单注释中有一些模板标记代码段。
答案 1 :(得分:1)
我试着在几个小时内找到这个问题的答案。上面的答案对我没有帮助。
我在这里找到了解决方案: http://djangosnippets.org/snippets/2264/
您需要添加新目录:/ yourproject / yourapp / templatetags /
在/ yourproject / yourapp / templatetags /中放置2个文件:
__ init__.py - 空文件
field_value.py - 使用以下代码:
from django import template
register = template.Library()
@register.simple_tag
def field_value(field):
""" returns field value """
return field.form.initial.get(field.name, '')
在模板的开头,您需要添加:
{% load field_value %}
您想要输出您需要添加的字段值的位置:
{% field_value form.field %}
或者,如果您已经有一个“字段”变量,那么只需:
{% field_value field %}
对我来说,这是一个内联形式的名称为“text”的字段,所以我添加了以下代码
{% field_value inline_admin_form.form.text %}
答案 2 :(得分:0)
假设字段名称是&#34;用户名&#34;表单名称为&#34; user_form&#34;,有两个值:
1)初始:
{{ user_form.initial.username }}
2)绑定:
{{ user_form.username.data }}