django中的日期时间选择器不使用forms.py
Posted
技术标签:
【中文标题】django中的日期时间选择器不使用forms.py【英文标题】:datetime picker in django without using forms.py 【发布时间】:2021-04-25 18:34:01 【问题描述】:我想在我的 django 项目中添加一个日期时间选择器输入字段。
我发现this 教程提供了几种方法,但它们都使用forms.py
,如下所示:
from django import forms
class DateForm(forms.Form):
date = forms.DateTimeField(
input_formats=['%d/%m/%Y %H:%M'],
widget=forms.DateTimeInput(attrs=
'class': 'form-control datetimepicker-input',
'data-target': '#datetimepicker1'
)
)
但我没有在我的项目中使用表单。我正在使用功能视图。 我找不到如何以这种方式实现 DateTime 选择器的示例?!
感谢任何帮助。
【问题讨论】:
你有什么特别的理由不想在你的项目中使用表单吗? 我正在进行项目,快完成了,我不想切换到使用表单 您可以创建一个简单的表单子类化 djangosForm
类并使用它,真的没有理由不这样做,“不想要”不是它的原因当您有 5 种不同的工作方法可以使用 Forms 完成您需要做的事情时,这确实是 0 意义的偏好,尤其是在这个问题的上下文中
模板是使用视图函数渲染的。你是说我只为日期时间选择器的一部分制作表格?我不知道如何组合它们!可以举个例子吗?
【参考方案1】:
好的,这里有一个示例 django form,您可以在 view 中创建和使用:
from django import forms
class MyForm(forms.Form):
datetime = forms.DateField(required=False, widget=forms.SelectDateWidget(years=range(2000, current_year))) # use this widget
# other fields you want
然后在你的 views.py
from .forms import MyForm
def submit_form_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
form.save()
return redirect('home') # or somewhere else
else:
form = MyForm()
return render(request, 'your_form_view.html', 'form': form)
然后像在 your_form_view.html 中常规那样呈现表单:
<form class="main-form" method="post">
% csrf_token %
form.as_p
<button class="main-button" type="submit">Save</button>
</form>
【讨论】:
我使用了教程中的第一个选项“Tempus Dominus Bootstrap 4”。并按照你说的实现了它,添加了日历图标但它不可点击,它被禁用了 这只是一个仅使用 django 的日期选择器示例,您应该尝试按照教程中的步骤准确描述它们,它将起作用以上是关于django中的日期时间选择器不使用forms.py的主要内容,如果未能解决你的问题,请参考以下文章