【问题标题】:How to max and min value of birthday in forms.ModelForm of Django?如何在 Django 的 forms.ModelForm 中设置生日的最大值和最小值?
【发布时间】:2015-07-17 08:10:54
【问题描述】:

我使用的是 Django 1.8 版本。

我的模特有生日专栏。

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    birthday = models.DateField (verbose_name=u'birthday')
    # ...

它是模型的形式。

class UserProfileForm(forms.ModelForm):
    slug_field = 'user_slug'

    class Meta:
        model = UserProfile
        fields = (
            'birthday',
        )

我想设置10-100岁的人。

我想我应该使用SelectDateWidget

import datetime
from django.forms import extras

class UserProfileForm(forms.ModelForm):
    slug_field = 'user_slug'
    now = datetime.datetime.now()
    DOY = tuple(n for n in range(now.year-100, now.year-9))
    birthday = forms.DateField(widget=extras.SelectDateWidget(years = DOY))

这是好方法吗?或者你能告诉我个好主意吗?

【问题讨论】:

    标签: python django django-forms django-1.8


    【解决方案1】:

    要验证表单字段,您可以在表单类中使用 clean_FIELDNAME() 方法。查看documentationthis answer

    【讨论】:

    • 我想创建选择列表。所以,我必须检查 clean_FIELDNAME() 但是,我也创建了列表。
    猜你喜欢
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 2017-04-30
    • 2019-02-10
    • 2015-05-13
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多