如何在 HTML 日期输入类型中将对象的日期属性显示为默认值

Posted

技术标签:

【中文标题】如何在 HTML 日期输入类型中将对象的日期属性显示为默认值【英文标题】:How to display a date attribute of an object as the default value in HTML date input type 【发布时间】:2013-06-04 03:32:51 【问题描述】:

您好,我正在尝试实现一个编辑页面,该页面接受对象的 id 并加载其所有原始值 && 启用编辑/更新。 例如

对于文本类型,我使用

<label>Field1:</label>
     <input type="text" id="id_field1" value=' objectInstance.filed1' name="field1"/>

用于文本

<label>Field2:</label>
    <textarea id="id_field2" name="field2">
         objectInstance.field2  

它们在加载实例的原始数据和允许编辑方面都工作得很好。但是对于日期字段,我不知道如何加载它.. 我正在尝试类似

<label>Deadline:</label>
            <input type="date" id="id_deadline" name="deadline" value=objectInstance.deadline>

(截止日期为日期数据类型,例如 2013-6-4)

谁能帮忙解决这个问题?非常感谢。

【问题讨论】:

你的意思是你想要在你的页面中的日期字段??如果是,为什么不使用 jquery。 是的,最初有一个type="date"的输入类型,所以我只是使用它,现在我发现很难加载一些日期数据并将其显示为默认值。 @MayankJain 有三种方法可以做到这一点吗?或者我已经在错误的方向并且在这里显示默认值是不可能的。非常感谢您的帮助 【参考方案1】:

您可以使用基于UpdateView 泛型类的视图来简化此过程。一个类似的问题是answered before。

解决此问题的另一种方法是使用ModelForm,并使用实例预加载它。这实际上是 UpdateView 所做的,但如果您不想使用基于类的视图,这里是替代方案:

在你的forms.py

from django import forms
from someapp.models import SomeModel

class SomeModelForm(forms.ModelForm):
    class Meta:
        model = SomeModel

在你的views.py:

def someview(request):
    obj = SomeModel.objects.get(pk=1)  # Fetch the object to be edited
    form = SomeModelForm(instance=obj) # Load the form with the object's data
    return render(request, 'edit.html', 'form': form)

edit.html:

<form method="POST">
% csrf_token $
 form 
<input type="submit">
</form>

这将自动创建表单,并用模型中的数据填充它。您仍然需要编写逻辑来更新视图中的记录。

【讨论】:

非常感谢,非常短的代码!让框架处理它。非常感谢

以上是关于如何在 HTML 日期输入类型中将对象的日期属性显示为默认值的主要内容,如果未能解决你的问题,请参考以下文章

Oracle ADF在查询组件中将secondaryPattern添加到Date

如何在angularjs中将字符串解析为日期

如何在配置单元中将字符串数据类型列转换为日期格式

在angularJS输入中将最小日期设置为当前日期

如何在EXCEL中将字符转成日期 如19970828转成1997-08-28

在python3中将日期值存储到sqlite表中