You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django的CreateView类中设置deadline字段的日期选择功能

问题原因

Django 后台默认给 DateField 类型字段内置了日期选择组件,而你当前用的 CreateView 通用视图自动生成的表单,默认给日期字段用的是普通文本输入框,既没有设置 HTML5 原生日期输入类型,也没有绑定日期选择逻辑,所以前端无法正常选择日期。

修复步骤
  1. 首先在你的应用目录下新建 forms.py 文件,自定义表单类并给 deadline 字段指定日期输入组件:
from django import forms
from .models import Gig

class GigCreateForm(forms.ModelForm):
    class Meta:
        model = Gig
        fields = ['title', 'industry', 'city', 'country', 'gigdescription', 'deadline']
        widgets = {
            # 配置为HTML5原生日期输入框,浏览器会自带日期选择器
            'deadline': forms.DateInput(attrs={'type': 'date'}),
        }
  1. 修改 views.py 中的 GigCreateView 配置,指定使用你自定义的表单类:
from .forms import GigCreateForm

class GigCreateView(CreateView):
    model = Gig
    template_name = 'gigs/create_gig.html'
    form_class = GigCreateForm
额外注意事项
  • 你当前模板中渲染了 {{form.profession}} 字段,但你原配置的表单字段列表里没有包含 profession,只有 industry,需要对应调整,否则渲染会报错。
  • 如果需要和 Django 后台样式一致的日期选择效果,可以自行引入前端日期组件给 deadline 输入框绑定即可。

内容的提问来源于stack exchange,提问作者Liah Cheston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:24:03