2016-06-11 2 views
0

私はdjangoでその考えを理解しようとしています。最後に変更されたエントリを作成しようとしました。djangoで最後に編集した時間を保持するdatetimefiledを作成する方法

slide_title = models.CharField(max_length=200) 
last_date = models.DateTimeField('last modified',auto_now=True) 
def __str__(self): 
    out = 'title: {}\n last modified: {}'.format(
      self.slide_title, 
      type(self.last_date) 
      ) 
    return out 

しかし、私は(python manage.py shellを使用して)shellを起動したとき、私は、次の

In [2]: from pressent.models import Slide 

In [3]: Slide.objects.all() 
Out[3]: 
[<Slide: title: title 
last modified: <type 'NoneType'>>] 

は、なぜそれがDateTimeField型ではありません取得:私は私のコードでこれを置きますか?

+0

どのようにオブジェクトを作成しましたか? 'slide.save()'を呼び出すことを試みてください。 'auto_now'は、オブジェクトのsaveメソッドが呼び出されたときに、現在の日時を設定する必要があります。 –

答えて

1

あなたはauto_now=Trueでした。しかし、それはModel.save()メソッドが呼び出されたときにのみ機能します。作成時にDateTimeFieldを入力するには、別の属性auto_now_add=Trueを追加する必要があります。

Reference

+0

私はあなたが正しくあなたを理解しているかどうかわかりませんが、これは '' Slide''を保存せずに元に戻すことができますか? '' auto_now_add = True''フィールドを追加するとこれを解決するはずですか?とにかく、私は自分のコードを更新し、新しいスライドを保存して、同じ結果を得ました。 – Yotam

+0

既存の行は変更されません。新しい変更を見るには、 'Slide'モデルに新しいエントリを追加してください。 'DateTimeField'は自動的に設定されます。 –

関連する問題