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

如何在Django模型中定义DateField实现出生日期表单输入

Django模型中出生日期字段的正确定义

你的代码存在几处错误,以下是修正方案及说明:

  1. 模型类继承错误
    原代码中class funder(models,Model):写法错误,Django模型必须继承自models.Model,且类名遵循大驼峰命名规范,应改为class Funder(models.Model):。

  2. 出生日期字段语法错误
    user_dob = models.DateField('none' = true)是无效写法,若允许用户不填写出生日期,需使用null=True, blank=True参数;若为必填字段,直接定义models.DateField()即可。还可添加verbose_name设置后台管理界面的友好字段名。

  3. 状态字段默认值类型错误
    user_status = models.PositiveIntegerField(default='1')中默认值是字符串类型,但字段为整数类型,应改为default=1。


修正后的完整代码:

# Create your models here.
from django.db import models

class Funder(models.Model):
    user_name = models.CharField(max_length=150)
    user_mobile = models.CharField(max_length=12)
    # 允许为空的出生日期字段,带友好显示名称
    user_dob = models.DateField(verbose_name="出生日期", null=True, blank=True)
    user_address = models.TextField()
    # 整数类型的默认状态值
    user_status = models.PositiveIntegerField(default=1)

补充说明:

  • null=True:允许数据库中该字段存储NULL值
  • blank=True:允许表单提交时该字段为空(若为必填项,移除这两个参数即可)
  • verbose_name:用于在Django后台管理界面显示更易读的字段名称,属于可选但推荐的优化项

内容的提问来源于stack exchange,提问作者Rahul Saxena

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:32:50