2011-09-14 13 views
0

テンプレートタグでフォームをレンダリングするために使用するフォームフィールドの1つに特殊なtemplateプロパティを追加しようとしています。ここでは、コードは次のようになります。djangoのフォームフィールドの1つにプロパティを追加します

form = ProfileForm() 

for field in form: 
    if field.name == 'email': 
     field.template = 'email_field.html' 

この方法では、元form変数は変更されません。私の目標を達成する方法はありますか?

+0

あなたが想像したように、ここでうまくいかないことについてもう少し詳しく見てください。 – rumpel

答えて

1

私はあなたがHTML5の電子メールフィールドを構築することがありますと仮定するつもりです:

from django import forms 
from django.forms.widgets import Widget 
from django.utils.safestring import mark_safe 


class Html5Email(Widget): 

    def render(self, name, value, attrs=None): 
     return mark_safe(u'<input name="custom-email" type="email" />') 


class YourForm(forms.Form): 
    html5_email = forms.CharField(widget=Html5Email()) 

私はDjangoのソースコードを一瞥することにより、上記を思い付きました。私は個人的に実際のプロジェクトで上記を使用していないので、おそらくコードは洗練されている必要があります。

関連する問題