我有一个模型,我需要存储出生年份.我正在使用django admin.使用它的人每天都会填满大量的人,而DateField()显示太多(对日/月不感兴趣).
这是一个模型模型,显示它现在如何:
class Person(models.Model):
name = models.CharField(max_length=256)
born = models.IntegerField(default=lambda: date.today().year - 17)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,大多数人都是17岁,所以我将他们的出生年份作为默认.
我能做得更好吗?如何从DateField中创建YearField?如果制作一个YearField我甚至可以制作一些"简单的标签",就像日期那样的"现在".(当然,一个专门的BornYearField将有1989,1990,1991和其他常见年份的简单按钮)
正如标题所示.我想在这个DateField领域增加30天.这是使用创建记录时自动填充的auto_now_add=True
任何想法如何去做?
谢谢
我有一个带有DateField的表单.现有日期值的格式设置为如下所示:
2009-10-03
我该如何格式化它,使它看起来像这样:
03.10.2009
我找到了一个像这样呈现它的小部件,但验证不允许我输入的值.
我一直在寻找方法将我的Django表单设置为仅接受今天或未来的日期.我目前在前端有一个jQuery datepicker,但这里是一个modelform的表单字段.
感谢您的帮助,非常感谢.
date = forms.DateField(
label=_("What day?"),
widget=forms.TextInput(),
required=True)
Run Code Online (Sandbox Code Playgroud) 我正在创建一个django应用程序,我有下一个问题:当我想设置日期时会显示此错误:
ValidationError [u"'12/06/2012' value has an invalid date format. It must be in YYYY-MM-DD format."]
Run Code Online (Sandbox Code Playgroud)
对于这个型号:
class ModelA(models.Model):
date1 = models.DateField(null=True)
date2 = models.DateField(null=True)
Run Code Online (Sandbox Code Playgroud)
如何设置DateField格式%m/%d/%Y.
该选项"input_formats"无法识别.
谢谢!
var startdt = Ext.create('Ext.form.DateField',{
fieldLabel: 'Start Date',
name: 'startdt',
id: 'startdt',
vtype: 'daterange',
format: 'd/m/Y',
endDateField: 'enddt', // id of the end date field
value = new date()
})
var enddt = Ext.create('Ext.form.DateField',{
fieldLabel: 'End Date',
name: 'enddt',
id: 'enddt',
format: 'd/m/Y',
vtype: 'daterange',
startDateField: 'startdt', // id of the start date field
value = new date()
})
Run Code Online (Sandbox Code Playgroud)
这种方法会让窗口无法正确显示在中心.任何想法让datefield使用此方法设置默认值?
是否有可能没有年份的DateField?或者我必须使用CharField吗?我正在使用管理员编辑模型.
单击下拉列表选择单个月/年时,对话框将消失,就像我试图单击一样.
小提琴:https://fiddle.sencha.com/#fiddle/9m6
Ext.onReady(function() {
Ext.create('Ext.form.Panel', {
title: 'Simple Form',
bodyPadding: 5,
width: 350,
// The fields
defaultType: 'textfield',
items: [{
xtype: 'datefield',
fieldLabel: 'Start Date',
id: 'startDate'
}],
renderTo: Ext.getBody()
});
});
Run Code Online (Sandbox Code Playgroud)
这已在ExtJs 5.1.0.107中修复
EXTJS-15968点击月份选择器后,日期选择器消失.
http://docs.sencha.com/extjs/5.1/whats_new/release_notes.html
我尝试验证我的 DateField 以仅接受今天和未来的日期,但我不知道为什么它接受每个过去的日期。
我的 models.py 文件:
def present_or_future_date(value):
if value < datetime.date.today():
raise models.ValidationError("The date cannot be in the past!")
return value
class Event(models.Model):
title = models.CharField(max_length=50)
text = models.TextField()
date = models.DateField(default=datetime.now, validators=[present_or_future_date])
duration = models.TextField(default='0', blank='true')
created_at = models.DateTimeField(default=datetime.now, blank='true')
def __str__(self):
return self.title
Run Code Online (Sandbox Code Playgroud) 我正试图找到一种简单的方法来构建以澳大利亚格式显示日期的表格(年/月/日).这是我能找到的唯一方法.似乎应该有一个更好的解决方案.
注意事项:
我想,理想的解决方案是一个自动本地化的日期字段,但对我来说不起作用(strftime似乎不是unicode友好但我没有努力尝试)
我错过了什么吗?有更优雅的解决方案吗?这是一种强有力的方法吗?
from models import *
from django import forms
import datetime
class MyDateWidget(forms.TextInput):
def render(self, name, value, attrs=None):
if isinstance(value, datetime.date):
value=value.strftime("%d/%m/%Y")
return super(MyDateWidget, self).render(name, value, attrs)
class MyDateField(forms.DateField):
widget = MyDateWidget
def __init__(self, *args, **kwargs):
super(MyDateField, self).__init__(*args, **kwargs)
self.input_formats = ("%d/%m/%Y",)+(self.input_formats)
class ExampleForm(ModelForm):
class Meta:
model=MyModel
fields=('name', 'date_of_birth')
date_of_birth = MyDateField()
Run Code Online (Sandbox Code Playgroud) datefield ×10
django ×8
python ×3
extjs ×2
format ×2
datetime ×1
django-admin ×1
django-forms ×1
extjs4 ×1
formatting ×1
forms ×1
localization ×1
model ×1
strftime ×1
validation ×1