2

ブートストラップ日付ピッカーでクリスピーフォームを使用しています。フォームを保存できますが、編集ページでテンプレートに日付が表示されません。

これはコードです:

editForm() では:

def init(self, *args, **kwargs):
self.helper = FormHelper()
Div('date_end', id="date_end", template='project/util/datepicker_end.html'),

datepicker_end.html:

    <div class="input-append date" id="date_end" data-date="{% now 'd-m-Y' %}" data-date-format="dd-mm-yyyy">
    <label for="id_date_end">Date end:</label>
    <input type="text" name="date_end" id="id_date_end" readonly="readonly" class="input-small"><span id="datepicker-icon" class="add-on"><i class="icon-calendar"></i></span>
    </div>

「印刷フォーム」の出力(日付はフォームに入っていますが、「div」にはレンダリングされていません):

<tr><th><label for="id_date_end" class="required">Date end: *</label></th><td><input type="text" name="date_end" value="31-05-2012" id="id_date_end" /></td></tr>

これにより、空のフィールドが生成されます: http://postimage.org/image/r9wqfyrvf/

プロジェクトへのリンク: https://github.com/maraujop/django-crispy-forms

ドキュメントへのリンク: http://django-crispy-forms.readthedocs.org/en/d-0/index.html

編集!

解決策を見つけました。テンプレートで入力 html タグを使用する代わりに、通常のタグ django {{form.date_end}} を使用しました。登録フォームにも同じテンプレートが使用されます。

通常の HTML 入力の代わりに django タグ {{form.date_end}} を使用するテンプレート datepicker_end.html。

<div id="div_id_data_end" class="clearfix control-group">
    <div class="input-append date" id="date_end" data-date="{% now 'd-m-Y' %}" data-date-format="dd-mm-yyyy">
            <label class="control-label requiredField" for="id_date_end">Data end* </label>
            <div class="controls">
                    {{form.date_end}}<span id="datepicker-icon" class="add-on"><i class="icon-calendar"></i></span>        
            </div>
    </div>
</div>

forms.py で

class EditForm(ModelForm):
class Meta:
    model = MyModel

self.helper.layout = Layout(  
        Fieldset(
        [...]
        Field('date_end', css_class='input-small dateinput', id='date_end', readonly='readonly', template='project/util/datepicker_end.html'),
)

よろしく!

4

0 に答える 0