2014-01-21 1 views
1

교육 부서에서 교육 과정을 관리하는 데 도움이되는 Django의 작은 응용 프로그램을 작성 중입니다. 특정 클래스의 예약 된 날짜를 보유하는 Schedule이라는 모델이 있습니다. 클래스가 생성 될 때 사용자가 클래스 날짜를 추가 할 수 있도록 Schedule 객체가 ScheduledClass 객체와 인라인 표시됩니다Django TimeInput의 기본 시간 변경

class Schedule(models.Model): 
    scheduled_class = models.ForeignKey(ScheduledClass) 
    class_date = models.DateField() 
    start_time = models.TimeField() 
    end_time = models.TimeField(null=True, blank=True, default=None) 

    def __unicode__(self): 
     return unicode(self.class_date) 

일정.

기본값 TimeInput 위젯의 느낌이 마음에 들지 않지만 오전 7시에 07:00:00으로 입력해야하기 때문에 사용자가 시간을 입력하는 것이 조금 어색합니다.

Now 
Midnight 
6 AM 
Noon 

다른 값을 지정하는 방법이 있나요 다음 TimeInput 위젯의 오른쪽

다음이 포함 된 시계 아이콘은 무엇입니까? 아마도 07:00, 08:00, 12:00, 12:30, 16:00, 16:30과 같이 내가 관심이있는 소수의 가치가있을 것입니다.

+1

뭔가를하는 데 도움이 .com/questions/5770973/django-how-to-change-the-admintimewidget) 아마도? – summea

+0

Google 기술에 분명 도움이 필요합니다. 이것을 답으로하고 나는 그것을 표시 할 것입니다. – Tony

+0

걱정할 필요가 없습니다. 유일한 질문은 두 질문이 비슷하다는 것입니다. (적어도 내 관점에서는 ...) 다른 질문의 대답이 당신을 위해 일한다면 결국이 질문을 계속해야 할 지 모르겠습니다. .. :) – summea

답변

1

자신 만의 위젯을 만들 수 있습니다. 또는 다른 해결 방법은 정적 파일에서 "admin/js/admin/DateTimeShortcuts.js"(override/http://d.pr/i/uXsL) 파일을 override하고 modifyDateTimeShortcut 플러그인을 변경하는 것입니다. 귀하의 경우에만이 교체 :

quickElement("a", quickElement("li", time_list, ""), gettext("Now"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date().strftime('" + time_format + "'));"); 
quickElement("a", quickElement("li", time_list, ""), gettext("07:00"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,7,0,0,0).strftime('" + time_format + "'));"); 
quickElement("a", quickElement("li", time_list, ""), gettext("12:00"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,12,0,0,0).strftime('" + time_format + "'));"); 
quickElement("a", quickElement("li", time_list, ""), gettext("12:30"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,12,30,0,0).strftime('" + time_format + "'));"); 
quickElement("a", quickElement("li", time_list, ""), gettext("16:00"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,16,0,0,0).strftime('" + time_format + "'));"); 
quickElement("a", quickElement("li", time_list, ""), gettext("16:30"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,16,30,0,0).strftime('" + time_format + "'));"); 

... 

결과 : 들어

quickElement("a", quickElement("li", time_list, ""), gettext("Now"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date().strftime('" + time_format + "'));"); 
quickElement("a", quickElement("li", time_list, ""), gettext("Midnight"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,0,0,0,0).strftime('" + time_format + "'));"); 

... 

http://d.pr/i/3ZmW

그리고 여기에 전체 코드 : https://gist.github.com/hannicolas/8551106

Saludos합니다.

0

당신은 위젯을 사용을 자제하고 다음과 같이 선택 인수를 사용하여 아래 간단한 드롭을 사용할 수 있습니다 : // 유래 : (HTTP를

class Class(Model): program = ForeignKey('Program') time_of_the_day = TimeField(choices=( (datetime.datetime.strptime('7:00 am', "%I:%M %p").time(), '7:00 am'), (datetime.datetime.strptime('8:00 am', "%I:%M %p").time(), '8:00 am'), (datetime.datetime.strptime('9:00 am', "%I:%M %p").time(), '9:00 am'), (datetime.datetime.strptime('6:00 pm', "%I:%M %p").time(), '6:00 pm'), (datetime.datetime.strptime('7:00 pm', "%I:%M %p").time(), '7:00 pm'), (datetime.datetime.strptime('8:00 pm', "%I:%M %p").time(), '8:00 pm'), (datetime.datetime.strptime('9:00 pm', "%I:%M %p").time(), '9:00 pm'),
))

희망이 [이런]