我有这个模型字段:
id_student = models.PositiveIntegerField(primary_key=True, max_length=10)
Run Code Online (Sandbox Code Playgroud)
该max_length限制不起作用.我可以登录管理员并创建一个id超过10个字符的学生.我怎么解决这个问题?
我希望我的用户进入他们的出生年份.我不希望他们在表单中键入相同的内容,而是从可用选项中选择年份.我知道如果我需要约会而不是一年,我可以在我的模型中做这样的事情:
class MyModel(models.Model):
birthday = models.DateField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
我可以在表单中执行此操作,让用户从datepicker中选择日期.
birthday = forms.fields.DateField(widget=forms.widgets.DateInput(attrs={'type': 'date'}))
Run Code Online (Sandbox Code Playgroud)
对于今年,我可以用一CharField/IntegerField用choices类似于已在此已经完成SO回答.
import datetime
YEAR_CHOICES = [(r,r) for r in range(1984, datetime.date.today().year+1)]
year = models.IntegerField(_('year'), choices=YEAR_CHOICES, default=datetime.datetime.now().year)
Run Code Online (Sandbox Code Playgroud)
然而,问题是,从2018年到2019年,当前年度的变化不会改变现有的选择.
你能帮忙或提供一些提示来实现我想做的事吗?
在django管理面板中,我目前有一个DateField显示一个很好的Javascript日历用于输入日期.但是,我只对月和年感兴趣.所以我想知道是否有可能让日历只显示月份和年份.(如果您可以限制其使用,以便将来不能输入任何日期,则额外的布朗尼点数.)
类似的问题有人问,但没有回答,在这里.