DateTimeInput 在 django 中被渲染为简单的文本输入

Sur*_*gle 5 html django datetime html-input

我试图从用户那里获取日期时间输入,但日期输入的数据类型被设置为 type="text"

以下是代码片段:

模板:

<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css" integrity="sha256-DOS9W6NR+NFe1fUhEE0PGKY/fubbUCnOfTje2JMDw3Y=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.full.min.js" integrity="sha256-FEqEelWI3WouFOo2VWP/uJfs1y8KJ++FLh2Lbqc8SJk=" crossorigin="anonymous"></script>


<form method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    {{form.stayFrom}}
    <script>
         $(function () {
         $("#id_stayFrom").datetimepicker({
             format: 'd/m/y',
             });
         });
      </script>
</form>
Run Code Online (Sandbox Code Playgroud)

形式.py:

class RoomApplicationForm(forms.ModelForm):
    stayFrom = forms.DateTimeField(input_formats=['%d/%m/%y'])
    class Meta:
        model = Stay 
        fields = ('stayFrom')
Run Code Online (Sandbox Code Playgroud)

模型.py:

class Stay(models.Model):
    user = models.OneToOneField(Account, on_delete=models.CASCADE, primary_key = True)

    stayFrom = models.DateTimeField(verbose_name="stay start date")
Run Code Online (Sandbox Code Playgroud)

这是渲染的 html:

<input type="text" name="stayFrom" id="id_stayFrom" autocomplete="off">
Run Code Online (Sandbox Code Playgroud)

你能指出我的代码中缺少什么吗?

小智 3

DateTimeField的默认小部件是文本字段 ( DateTimeInput )。所以这是预期的行为。