1

私はこのようなモデルを持っています

class Timer(models.Model):
"""Represents a timing system"""

   start_time = models.DateTimeField(default=datetime.datetime.now())
   end_time = models.DateTimeField()

そしてこれをモデルにした形

class JobForm(forms.ModelForm):

    class Meta:
        exclude = ['slug','author','duration',]
        model = Job

タイミング情報を追加したいときにトラブルが発生します。つまり、長い形式で入力する必要があります。

DD-MM-YYYY HH:MM:SS 

時刻は同じ日にリアルタイムで追加されるので、長い形式は手間がかかるように見えます。

HH:MM

model.TimeFieldを使用することはできません。これは、開始時刻と終了時刻の間の期間を計算するためです。誰かが睡眠のタイミングを計ったり、他に何を知っているかによって、深夜にまたがる可能性があります。HH:MMでの入力を許可し、それを日時フィールドとして使用するにはどうすればよいですか(最終的には何らかの努力をした後)?コードで現在の日付と同じ日付を想定してHH:MMを指定します

4

1 に答える 1

1

After looking at the forms documentation, this is what iv decided to do, since i didn't understand @cclerville's suggestion (maybe django is poor?) here goes: in my forms.py

class MyDateTimeField(forms.Field):

    def to_python(self, value):
        # Return an empty list if no input was given.
        if not value:
            return []
        import datetime 
        today = datetime.date.today()
        hhmm = value.split(':')
        val= datetime.datetime.combine(datetime.date.today(), datetime.time(int(hhmm[0]),int(hhmm[1])))
        return val

and the form itself:

class JobForm(forms.ModelForm):
    end_time = MyDateTimeField()
于 2013-02-17T19:13:07.857 に答える