如何在 Django 中使用 attrs={'type': 'date',} 添加占位符到 forms.widgets.DateInput ?

Mur*_*nio 2 python django django-templates django-forms

如果我传递到,我无法将占位符添加到DateInput表单内的小部件。但是,如果我不传递到该字段,其行为就像.'type': 'date'attrs'type': 'date'attrsTextInput

它看起来非常简单,但我不明白出了什么问题。

表格.py

class QueryClientsForm(forms.Form):
    initial_date = forms.DateField(
        widget=forms.widgets.DateInput(
            attrs={'placeholder': 'Initial date...', 'type': 'date', }))
Run Code Online (Sandbox Code Playgroud)

query_clients.html

<div class="container h-50">
    <div class="row justify-content-center">
        <div class="register_card" style="display: inline-block;">
            <form method="POST" action="">
                {% csrf_token %}
                <div class="input-group">
                    {{form.initial_date}}
                    <input class="btn login_btn" type="submit" style="margin-left: 10;" value="SEARCH">
                </div>
            </form>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我也尝试使用一些javascript但没有成功......

<script>

    var initial_date = document.getElementById('id_initial_date')

    initial_date.placeholder = 'Initial date...';
    
</script>
Run Code Online (Sandbox Code Playgroud)

我要改变什么?

Mur*_*nio 5

我使它可以调整onfocus参数并将其更改type为文本。

class QueryClientsForm(forms.Form):
    initial_date = forms.DateField(
        widget=forms.widgets.DateInput(
            attrs={'placeholder': 'Initial date...', 'type': 'text',
                   'onfocus': "(this.type='date')", }
        )
    )
Run Code Online (Sandbox Code Playgroud)