2016-05-10 5 views
1

GoogleのカレンダーのリマインダーのリピートセクションにあるようにDjangoでフォームを作成したいと思います。 HTML要素の enter image description hereDjangoのフォームでradiogroup selectとプレーンな入力を組み合わせる方法

class ReminderFlatForm(ModelForm): 
    WEEKS = (
     (1, 'M'), 
     (2, 'T'), 
     (3, 'W'), 
     (4, 'T'), 
     (5, 'F'), 
     (6, 'S'), 
     (7, 'S'), 
     ) 
    REPEATS_BY = (
     (8, 'day of the month'), 
     (9, 'day of the week') 
     ) 
    ENDS = (
     (1, 'Never'), 
     (2, 'After <input type="text" id="after_id"> occuriencies'), 
     (3, '<input type="text" id="ondate_id">') 
     ) 

    weeks = forms.MultipleChoiceField(
     choices=WEEKS, 
     label="", 
     required=False, 
     widget=forms.CheckboxSelectMultiple 
     ) 
    months = forms.MultipleChoiceField(
     choices=REPEATS_BY, 
     label="", 
     required=False, 
     widget=forms.RadioSelect 
     ) 
    ends = forms.MultipleChoiceField(
     choices=ENDS, 
     label="Ends", 
     required=True, 
     widget=forms.RadioSelect 
     ) 

しかし、その代わりに、私はプレーンテキストを持っています。 どうすればDjangoのフォームでそれを行うことができますか?

また、私が重要なのは、クリスピーな形を使っています。

答えて

2

あなたは

ENDS = (
     (1, 'Never'), 
     (2, mark_safe('After <input type="text" id="after_id"> occuriencies')), 
     (3, mark_safe('<input type="text" id="ondate_id">')) 
     ) 
+1

多くのTHX、私はただ純粋なHTMLを追加できるWebインスペクタに見て、それが – Denis

0

のほかに、それらにHTMLで要素のmark_safeを使用する必要がある、あなたはループテンプレート内のフィールドとは、あなたが欲しいものは何でもそれらを描くことができます。種類:だから

{% for field in form %} 
    <div class="fieldWrapper"> 
     {{ field.errors }} 
     {{ field.label_tag }} {{ field }} 
     {% if field.help_text %} 
     <p class="help">{{ field.help_text|safe }}</p> 
     {% endif %} 
    </div> 
{% endfor %} 

は、あなたがあなたのhtml要素の間に、あなたのテンプレートでそれらをペイントするために、(フォームで)プレーンテキストとしてあなたのフィールドを定義します。

https://docs.djangoproject.com/es/1.9/topics/forms/

+0

をエスケープしませんでした。しかし、私は再利用可能なフォームが必要です。 – Denis

+0

フォームは再利用可能です。フィールドを定義しています。フィールドには値が入ります。あなたがそれをペイントする方法を決定する方法は、もう一方の手でテンプレートに入れなければなりません。 –

関連する問題