は、Djangoは{{myform.name}}
代わりDjangoのフォーム内の代わりに、フィールドのテキストとして値をレンダリング
<input id="id_name" name="name" value="John Smith" />
<form>
タグ内の
John Smith
としてレンダリングさせるための簡単な方法はありますか?それとも私はこれについて間違った方法をとっていますか?
は、Djangoは{{myform.name}}
代わりDjangoのフォーム内の代わりに、フィールドのテキストとして値をレンダリング
<input id="id_name" name="name" value="John Smith" />
<form>
タグ内の
John Smith
としてレンダリングさせるための簡単な方法はありますか?それとも私はこれについて間違った方法をとっていますか?
<form>
{% for field in form %}
{{ field.label }}: {{ field.value }}
{% endfor %}
</form>
あなたはまた新しいウィジェットを使用することができ、ここでForm fieldsを見て、Working with forms
:私はこれをしなかった私は、日付のテキスト表示を作成したウィジェット、およびとの隠されたフォームを持つことができるように、同じ日付であるため、ユーザーに表示される可能性がありますが、変更することはできません。あなたはその後、(widget=DayLabelWidget,)
としてフィールドにこれを使用
class DayLabelWidget(forms.Widget):
def render(self, name, value, attrs):
final_attrs = self.build_attrs(attrs, name=name)
if hasattr(self, 'initial'):
value = self.initial
if type(value) == type(u''):
value = datetime.date(*map(int, value.split('-')))
return mark_safe(
"%s" % value.strftime("%A (%d %b %Y)")
) + mark_safe(
"<input type='hidden' name='%s' value='%s' />" % (
name, value
)
)
def _has_changed(self, initial, data):
return False
:ここ
は初期(まだクリーンアップする/テスト)のバージョンです。また
、使用しないのはなぜあなたも{{myform.instance.name}}
を行うことができます忘れないでください{{field.data}}?
テンプレートにないビューで実行する必要があるため(テンプレートはループ) –
私は、これはあなたが欲しいものだと思う: http://code.djangoproject.com/ticket/10427
私は...
古い話題を私のジャンゴと出来上がりをパッチし、私は何人かの人々はまだここに来ると思います。
あなたもこのような何かを行うことができます。
from django.utils.safestring import mark_safe
class PlainTextWidget(forms.Widget):
def render(self, _name, value, _attrs):
return mark_safe(value) if value is not None else '-'
そして、あなたの形で
class SomeForm(Form):
somename = forms.CharField(widget=PlainTextWidget)
おかげで - 私は.LABELしかし.initialない見ていたし。不思議なことに、.initialは "フォームを使って作業する"文書でも言及されていません。 – ine
.initialはフォームが初めて表示されたときにのみ動作します。たとえば、エラーがあり、フォームを再提示すると、私の経験ではイニシャルはありません。 – dfrankow
Djangoの用語では、これはバインドされていないフォームでのみ機能します。バインドされていないフォームとバインドされたフォームの両方で動作させたい場合はどうすればよいですか? – dfrankow