Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django表单-未从实例填充DateInput_Python_Django_Django Forms - Fatal编程技术网

Python Django表单-未从实例填充DateInput

Python Django表单-未从实例填充DateInput,python,django,django-forms,Python,Django,Django Forms,我正在尝试为Django模型设置一个编辑表单,其中包含一个日期字段。我已将此字段设置为forms.py中的forms.DateInput。这对于创建模型的新实例非常有效,但是当我尝试使用现有实例填充表单时,DateInput字段仍然为空,即使其他所有字段都已正确填充 如果我恢复到默认的TextField输入,则正确调用数据。我还尝试在DateInput小部件中设置格式 models.py class-Rider(models.Model): first_name=models.CharField

我正在尝试为Django模型设置一个编辑表单,其中包含一个日期字段。我已将此字段设置为forms.py中的forms.DateInput。这对于创建模型的新实例非常有效,但是当我尝试使用现有实例填充表单时,DateInput字段仍然为空,即使其他所有字段都已正确填充

如果我恢复到默认的TextField输入,则正确调用数据。我还尝试在DateInput小部件中设置格式

models.py

class-Rider(models.Model):
first_name=models.CharField(最大长度=40)
姓氏=models.CharField(最大长度=40)
男='M'
女性='F'
性别选择=[
(男","男"),,
(女,'女'),
]
gender=models.CharField(最大长度=1,选项=gender\u选项)
dob=models.DateField(“出生日期”,auto\u now=False,auto\u now\u add=False)
club=models.CharField(最大长度=50,空白=True,空=True)
bc_number=models.IntegerField(“英国自行车会员号”,blank=True,null=True)
链接帐户=模型.ForeignKey(settings.AUTH\u USER\u MODEL,on\u delete=models.CASCADE,默认值=1)
views.py

def-rider\u编辑(请求,主键):
骑手=获取对象或404(骑手,主键=主键)
如果request.method==“POST”:
form=RiderForm(request.POST,前缀='rider',实例=rider)
如果form.is_有效():
rider=form.save(commit=False)
rider.linked_account=request.user
拯救
返回重定向(“附加项列表”)
其他:
form=RiderForm(前缀='rider',实例=rider)
返回呈现(请求'riders/rider_new.html',{'riderform':form})
form.py

来自django导入表单的

从.models导入附加程序,MedicalInfo
类RIDEFORM(forms.ModelForm):
类元:
模型=骑手
字段=(‘名字’、‘姓氏’、‘性别’、‘dob’、‘俱乐部’、‘bc_编号’)
小部件={
'dob':forms.DateInput(attrs={'type':'date'},格式='%d/%m/%Y')
}
rider_new.html

新骑手
{%csrf_令牌%}
{{riderform.as_p}}
附加说明

dob字段是唯一无法从数据库中正确填充的字段,它应以dd/mm/YYYY格式显示日期,例如“10/09/2010”。它实际上显示了默认的“dd/mm/YYYY”。

我找到了问题的解决方案,数据库中的日期以“%d/%m/%Y”格式返回,但表单上的输入是“日期”类型,需要以“%Y-%m-%d”格式输入,方法是更改:

widgets={
'dob':forms.DateInput(格式=('%d/%m/%Y'),属性={'class':'form-control','placeholder':'Select-Date','type':'Date'})
}
致:

widgets={
'dob':forms.DateInput(格式=(“%Y-%m-%d”),属性={'class':'form-control','placeholder':'Select-Date','type':'Date'})
}
因此,生成的HTML表单更改为:


致: