2010-11-30 102 views
3

在Django窗体中构建的as_html,as_ul,as_p方法不适用于我,也不在{{field}}中进行渲染,因此我正在尝试编写自定义窗体渲染。如何获取django模板中的BoundField的值?

这是我到目前为止有:

<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支持valuedata属性。我正在使用ModelForms,如果它很重要

回答

3

value属性降落在主干in 2010。该补丁显示如何使用表单/数据检索值(不幸的是,在模板中不是简单的)。票据注释中有一些模板标签代码片段,您可能会觉得有用。

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, '') 

在你的模板的开头你NEDD补充:如果你想输出一个字段的值

{% load field_value %} 

您需要添加:

{% field_value form.field %} 

或者,如果你已经有了一个“场”变量,然后只是:

{% field_value field %} 

对我来说是具有内嵌形式的名称“文本”字段,所以我增加了以下代码

{% field_value inline_admin_form.form.text %} 
0

假设字段名称为 “用户名” 和形式名称是 “user_form”,有两个值:

1)初始:

{{ user_form.initial.username }} 

2)的约束:

{{ user_form.username.data }} 
相关问题