我有一张表格
forms.py
class RegistrationForm(BaseRegistrationForm):
name = forms.CharField(label='Name of the Entrepreneur', max_length=120)
ename = forms.CharField(label='Name of the Enterprise', max_length=120)
sector = forms.CharField(label='Industry Sector', max_length=50, widget=forms.Select(choices=zip(SECTOR_CHOICES, SECTOR_CHOICES)))
subsector = forms.CharField(label='Sub-sector', max_length=50, widget=forms.Select(choices=zip(SUBSECTOR_CHOICES, SUBSECTOR_CHOICES)))
address1 = forms.CharField(label='Address Line 1', max_length=100)
address2 = forms.CharField(label='Address Line 2', max_length=100, required=False)
city = forms.CharField(label='City/Town', max_length=50)
state = forms.CharField(label='State', max_length=50)
country = forms.CharField(label='Country', max_length=50)
postal_code = forms.CharField(label='Pin Code', max_length=10, required=False)
estd = forms.DateField(label='Establishment Details')
contact = forms.IntegerField(label='Contact Number')
对于我写过javascript的DateField
变量
JavaScript代码:
<script type="text/javascript">
$(function() {
$('#id_estd').datepicker( {
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'mm/yy',
onClose: function(dateText, inst) {
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$(this).datepicker('setDate', new Date(year, month, 1));
}
});
});
</script>
<style>
.ui-datepicker-calendar {
display: none;
}
</style>
在estd
字段中显示mm / yy(例如:02/2014)
提交表单时,我应该提交mm / dd / yy之类的值。那么如何在提交表单时更改值?
答案 0 :(得分:0)
最好为人类使用一种格式,为处理使用另一种格式。 JQuery UI Datepicker允许使用不同的格式填充备用字段:http://jqueryui.com/datepicker/#alt-field
基本上重命名现有的datepicker字段,添加名为estd
的隐藏输入,其ID为id_estd
(Django将分配的默认名称和ID),并在初始化datepicker时添加以下行:
altField: "#id_estd",
altFormat: "mm/dd/yy"
答案 1 :(得分:0)
为什么要使用javascript来更改值?只需在django中设置格式。
class MyForm(Form):
# the default format is %Y-%m-%d
estd = forms.DateField(
widget=forms.widgets.DateInput(format="%m/%Y")
)
DateInput
小部件的文档; https://docs.djangoproject.com/en/1.7/ref/forms/widgets/#dateinput
日期/时间输入格式设置在此处详述; https://docs.djangoproject.com/en/1.7/ref/settings/#date-input-formats
答案 2 :(得分:0)
不得使用javascript或其他内容。 django中有一个片段使用它。
https://djangosnippets.org/snippets/1688/
将代码段保存在名为widgets.py
的文件中,然后在forms.py
文件中导入类名,并按照以下代码进行操作:
import datetime
class myForm(forms.Form):
# ...
date = forms.DateField(
required=False,
widget=MonthYearWidget(years=xrange(1990,datetime.date.today().year+1))
)
希望它有效。