2013-04-11 2 views
1

forms.pyНастроить форму Джанго виджетов

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

+0

просто вызывают '{{form.as_p}}' в вашем шаблоне. Где вы просматриваете коды, чтобы я мог научить их? – catherine

+0

views.py еще не написано, просто я инициализировал функцию поиска и сконцентрировался на html-дизайне. – user2086641

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; } 
Смежные вопросы