5

一般に、ユーザーがそのページに初めてアクセスしたかどうかをどのように知るのでしょうか? 技術的には、各ページへのアクセス数をモデルに保存しますか (私は django を使用しています)、または操作を容易にするために従うことができる他のパターンがありますか。

これを実装するためのデザインを探しています。

4

2 に答える 2

5

これには独自のメカニズムを作成する必要があると思います。

たとえば、すべての URL とユーザーの最初の訪問を格納するモデルを作成しますFirstVisit。次に、ユーザーがビューでページを要求した場合、現在のユーザーと URL のエントリがあるかどうかFirstVisitを検索し、それが初めてかどうかを調べることができます。その後、彼がまだ訪問していない場合FirstVisitは、ページのコンテンツを取得するだけなので、エントリをモデルに保存します。

コードを書いてみます:

#models.py

class FirstVisit(models.Model):
    url = models.URLField()
    user = models.ForeignKey('auth.User')


#views.py

def my_view(request):
   if not FisrtVisit.objects.filter(user=request.user.id, url=request.path).exists():
      #he visits for the first time
      #your code...
      FisrtVisit(user=request.user, url=request.path).save()

デコレータを作成して、そこにこの機能を配置できます。次に、この情報を保存するビューにデコレータを追加し、デコレータからフラグ引数をビューに渡し、ユーザーが初めてそこにいるかどうかを判断します。

于 2013-03-29T11:52:08.433 に答える