我有一个模型类:
class MyModel(models.Model):
date = models.DateField("Date")
和相关的管理类
class MyModelAdmin(admin.ModelAdmin):
pass
在django管理界面上,我希望能够以以下格式输入日期:dd / mm / yyyy。但是,管理表单中的日期字段应为yyyy-mm-dd。
如何自定义内容?注意:我已经在settings.py中指定了我的自定义语言代码(fr-FR),但似乎对此日期输入没有影响。
谢谢您的回答
#1 楼
管理系统使用默认的ModelForm
来编辑对象。您需要提供一个自定义表单,以便您可以开始覆盖字段行为。 > MY_DATE_FORMATS = ['%d/%m/%Y',]
class MyModelForm(forms.ModelForm):
date = forms.DateField(input_formats=MY_DATE_FORMATS)
class Meta:
model = MyModel
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
#2 楼
Ben提出的修复程序正在工作,但右侧的日历不再显示。这是一项改进。日历仍将显示,日期将以%d %% M /%Y格式显示。
from django.forms.models import ModelForm
from django.contrib.admin.widgets import AdminDateWidget
from django.forms.fields import DateField
class MyModelForm(ModelForm):
date = DateField(input_formats=['%d/%m/%Y',],widget=AdminDateWidget(format='%d/%m/%Y'))
class Meta:
model = MyModel
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
在日历中单击某天时,该字段的值具有%Y-%m-%d格式,但被接受为有效的日期格式。
PS:感谢Daniel Roseman对这个问题的回答
评论
很高兴能奏效,也许您可以接受这个答案?欢迎使用Stack Overflow。
–本·詹姆斯
2010年3月13日在21:45