为了账号安全,请及时绑定邮箱和手机立即绑定

将日期时间的文本条目替换为 Django 表单中的日历日期选择器图标

将日期时间的文本条目替换为 Django 表单中的日历日期选择器图标

达令说 2023-01-04 11:16:50
我的 Django 应用程序中有这个模板,用于添加培训课程:{% extends 'base.html' %}{% load crispy_forms_tags %}{% block content %}    <h1>New session</h1>    <form action="" method="post">{% csrf_token %}        {{ form|crispy }}        <input class="btn btn-success" type="submit" value="Save" />    </form>    <p />{% endblock content %}该表单包含一个日期时间字段,如下所示:是否可以更改此设置,而不是将日期时间作为文本输入,而是可以从日历类型图标中选择?如果是这样,这是怎么做到的?这是我的观点:class SessionCreateView(CreateView):    model = ClubSession    template_name = 'session_new.html'    fields = ['location', 'coach', 'date', 'details']这是我的模型:class ClubSession(models.Model):    location = models.CharField(max_length=200)    coach = models.ForeignKey(CustomUser, on_delete=models.CASCADE)    date = models.DateTimeField(default=now)    details = models.TextField()    def __str__(self):        return self.location    def get_absolute_url(self):        return reverse('session_detail', args=[str(self.id)])
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

使用脆皮表格,我认为您需要一个表格。


class ClubSessionForm(forms.ModelForm):

    class Meta:

        model = ClubSession

        fields = ['location', 'coach', 'date', 'details']


    def __init__(self, *args, **kwargs):

        super().__init__(*args, **kwargs)

        self.fields['date'].widget.attrs.update({'type': 'datetime-local'})


class SessionCreateView(CreateView):

    model = ClubSession

    form_class = ClubSessionForm

    template_name = 'session_new.html'


文档

请记住,并非所有浏览器都支持<input type="datetime-local">——我相信只有 Chrome 和 Opera 支持。如果您需要它在所有浏览器中工作,您将需要一个 JS 解决方案。


查看完整回答
反对 回复 2023-01-04
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信