2010-11-30 104 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 }} 
相關問題