SelectTimeWidget은 SelectDateWidget을 기반으로하는 사용자 정의 위젯입니다. 나는 그것이 '읽기 전용'을 지원한다고 생각하지 않는다. 아마 대답을 과도했지만 나는 연극을했고, 당신이 정말로 그것을 수행하려는 경우 도움이 될 수 있습니다 다음과 ...
I dropped the SelectTimeWidget snippet into my code로 와서 다음 줄을
def __init__(self, attrs=None, hour_step=None, minute_step=None, second_step=None, twelve_hr=False):
을 변경 :
def __init__(self, attrs={'readonly':'readonly'}, hour_step=None, minute_step=None, second_step=None, twelve_hr=False):
과 :
select_html = Select(choices=hour_choices).render(self.hour_field % name, hour_val, local_attrs)
select_html = Select(choices=minute_choices).render(self.minute_field % name, minute_val, local_attrs)
select_html = Select(choices=second_choices).render(self.second_field % name, second_val, local_attrs)
사람 :
select_html = TextInput().render(self.hour_field % name, hour_val, local_attrs)
select_html = TextInput().render(self.minute_field % name, minute_val, local_attrs)
select_html = TextInput().render(self.second_field % name, second_val, local_attrs)
양식 필드에 값을 게시하고 더 동적으로 양식의 값에 액세스하고 즉시 양식을 변경하려면 다음과 같은 양식 스타일을 사용했습니다. 님
form = time_form({'From_Time':'12:34:56 P.M.',})
주 I가 = { 'this.form.submit()'의 onchange '} attrs에 남아 : 그것은 모습 뷰
class time_form(forms.Form):
def __init__(self, *args, **kwargs):
super(time_form, self).__init__(*args, **kwargs)
self.fields['From'] = forms.CharField(widget=forms.TextInput(attrs={'onchange':'this.form.submit()'}))
self.fields['To'] = forms.CharField(widget=forms.TextInput(attrs={'onchange':'this.form.submit()'}))
self.fields['From_Time'] = forms.TimeField(widget = SelectTimeWidget())
제가보고 값을 설정 재밌을 때 당신이 동적으로 양식을 업데이 트하려는 경우에 대비하여 (그리고 attr =가 표시되는 위치를 보여주기 위해), 이것이 선택된 위젯에서 가장 잘 작동하는 경향이 있지만. 폼에서 'From'및 'To'값 (예 : var = args [0] .get ('To'))에 액세스하고 'From_Time'(args [0] [ 'From_Time'] = 일부 함수).
두 번째로, 'From_Time'위젯은 이제 시간 형식을 구문 분석하여 읽을 수있는 읽기 전용 TextInput 상자가되어 복잡한 방식으로 보입니다.
위젯을 읽기 전용으로 사용하려는 이유는 무엇입니까? 그냥 텍스트 위젯을 표시 –
흠 그러나이 방법으로 시도하고 싶었어 그래서 내 다른 CSS 템플릿에 영향을 미치지 않습니다 ... – Friend