2013-04-11 43 views
1

forms.py定製django的表單部件

INCIDENT_LOCATIONS = (
    ('01. Classroom', '01. Classroom'), 
    ('02. Corridor', '02. Corridor'), 
    ('03. Stairs', '03. Stairs'), 
    ('04. Playground', '04. Playground'), 
    ('05. Sportsground', '05. Sportsground'), 
    ('06. Excursion', '06. Excursion'), 
) 

class SearchForm(forms.Form): 
    keywordsearch=forms.CharField(max_length=100,label="search") 
    incident=forms.CharField(widget=forms.TextInput(attrs={'class':'special'})) 
    location=forms.CharField(max_length=100) 
    fromdate = forms.DateField(label="From Date", input_formats=['%d/%m/%Y'], validators=[validate_date]) 
    todate = forms.DateField(label="To Date", input_formats=['%d/%m/%Y'], validators=[validate_date]) 

1.How寫css類來增加特定字段的長度,我需要入射場比keywordsearch字段更長度

2 。如何在django中創建下拉框。主要目的是選擇上述選項中的任何一個。這裏選擇位置字段中的事件位置,我試圖做。我不知道如何顯示此表單html頁面。

3.如何減少表單中日期字段的長度,因爲它與普通文本框的長度相同。

請幫我完成上述步驟。

感謝

回答

3

1.How寫CSS類增加特定字段的長度,我需要的事發現場比keywordsearch場以上長度

可以使用size屬性,

incident=forms.CharField(widget=forms.TextInput(attrs={'class':'special', 'size': '40'})) 

2.如何在django中創建下拉框。主要目的是選擇上述選項中的任何一個。這裏選擇位置字段中的事件位置,我正在嘗試做。我不知道如何在中顯示此表單html頁面。

代替使用CharField的,使用ChoiceFIeld

location=forms.ChoiceField(choices=INCIDENT_LOCATIONS) 

3.How減少形式日期字段的長度,因爲它正在相等長度像普通文本框。

此字段的默認表單窗口小部件是TextInput。就像第一個人一樣,你可以使用size屬性。

+0

如何顯示在模板 – user2086641 2013-04-11 07:43:58

+0

中選擇字段窗體只需調用模板中的「{{form.as_p}}」。你在哪裏查看代碼,以便我可以教如何? – catherine 2013-04-11 07:49:39

+0

views.py尚未寫入,只是我初始化了一個在視圖中的搜索功能,並集中在HTML設計 – user2086641 2013-04-11 08:02:22

1

寫自己的CSS類: https://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.Widget.attrs

>>> name = forms.TextInput(attrs={'size': 10, 'title': 'Your name',}) 
>>> name.render('name', 'A name') 
u'<input title="Your name" type="text" name="name" value="A name" size="10" />' 

對於創建下拉框,你可以使用: https://docs.djangoproject.com/en/dev/ref/forms/widgets/#selectmultiple

location=forms.CharField(max_length=100 widget=form.SelectMultiple) 

而對於減少長度,你可以使用另一個CSS類,如:

.myclass { width:100px; }