2017-07-29 17 views
0

Djangoでデータベースの項目のリストを表示するWebページを作成しました。私は、ユーザーが最初にそのページを生成するときに、現在の日付(時間ではなく)がページに表示される機能を作成したいと考えています。難しいのは、ユーザーがソーシャルメディアやそのどこのページでもそのページへのリンクを共有している場合、元の日付は変更されないということです。つまり、次のユーザーが最初のユーザーが共有するリンクを介してページを表示するたびに変更されるべきではありません。日付は、最初のユーザーがページを生成したときに1回だけ作成されます。DjangoのWebページで変更されない日付を作成する方法

目的は、そのページの次の視聴者に、最初のユーザーがアクセスした日付に関連するすべてのデータベース項目を表示することです。しかし、最初のユーザーがデータベースにアクセスした日以降、データベースに追加された関連エントリの数に関する情報も提供します。それ以降のユーザーは、今日の時点ですべてのデータベース項目を表示する新しいページに進むことができます。これをどのように実装できますか?

答えて

0

ユーザーがモデルを使用してページを生成したタイミングを追跡できます。そのモデルのフィールドの1つは、以下に示すように「作成」されている必要があります(もちろん名前は何でもかまいません)。そのモデルのsaveメソッドをオーバーライドして、最初の作成時にのみ作成されたフィールドを更新します。 (これはdjangoでアイテムの作成日を追跡するために使用される標準的なテクニックです)

from datetime import date 

class Yourmodel(models.Model): 
    created = models.DateField() 

    def save(self, *args, **kwargs): 
     ''' On save, update timestamps ''' 
     if not self.id: 
      self.created = date.today() 
     return super(Yourmodel, self).save(*args, **kwargs) 
+0

ありがとう、ありがとうございます。これは役に立ちます! – henrich

+0

@henrich、幸せに助けて、そしてStack Overflowへようこそ。この回答または他の誰かがあなたの問題を解決した場合は、それを合格とマークしてください。 –

+0

私はそれをして喜んでいるが、私はそれを受け入れられたとどのようにマークしているのかわかりません。アドバイスをして、私はそれをやってうれしいです。ありがとう。 – henrich

関連する問題