2016-01-29 100 views
0

我有一個Django表單中的SelectDateWidget,它應該只允許用戶選擇某些年前的日期。如何限制小部件中的月份和日期?例如,當前日期爲1月28日時,出生在最後一年的用戶應該無法選擇1月1日。同樣,在當前日期爲當前日期時,不應允許在最近一年出生的人選擇2月1日1月28日在Django中爲SelectDateWidget設置月份和日期範圍

這裏是我的形式:

class Form(forms.Form): 
    birthday = forms.DateField(widget=SelectDateWidget(empty_label=('Year', 'Month', 'Day'), years=range(datetime.date.today().year-22, datetime.date.today().year - 15))) 

如何設置月和天允許的形式?

回答

1

我不知道什麼是你的插件的規則,但你總是可以使用的形式構造函數來創建動態的領域:

class FooForm(forms.Form): 
    def __init__(self, *args, **kwargs): 
     user = kwargs.pop('user', None) 
     super(FooForm, self).__init__(*args, **kwargs) 
     if user: 
      # calculate the list of years based on user's information and the rules you have 
      # e.g. years = range(2010, 2016) 
      self.fields['birthday'] = forms.DateField(widget=SelectDateWidget(empty_label=('Year', 'Month', 'Day'), 
                 years=years)) 

然後在你的看法,你做的事:

def views(request): 
    form = FooForm(request.POST or None, user=request.user) 
相關問題