Verfolgen Sie die Anzahl der "Seitenansichten" oder "Treffer" eines Objekts?
Ich bin sicher, dass jemand hat eine steckbare app (oder tutorial) aus, dass es kommt, aber ich habe Schwierigkeiten, es zu finden: ich möchte in der Lage sein, um die Anzahl der "views", ein bestimmtes Objekt (wie hier eine Frage auf stackoverflow hat eine "Anzahl").
Wenn der Benutzer nicht angemeldet, ich würde nicht dagegen, Versuch einen cookie (oder log-IP), so dass Sie nicht versehentlich die anzeigen zählen, indem Sie die Seite aktualisieren; und wenn ein Benutzer angemeldet ist, nur ermöglichen Ihnen einen "Blick" über sessions/Browser/IP-Adressen. Ich glaube nicht, ich brauche es schicker als das.
Ich herausfinden, dass der beste Weg, dies zu tun ist mit Middleware, die entkoppelt ist von den verschiedenen Modellen, die ich verfolgen möchte und mit einem F-Ausdruck (der Arten) -- andere Fragen auf stackoverlow haben darauf angespielt (Eins) (Zwei) (Drei).
Aber ich Frage mich, ob dieser code existiert in der wildnis schon jetzt, weil ich bin nicht die savviest coder und ich bin sicher, jemand könnte es besser machen. Lächeln.
Haben Sie es gesehen?
InformationsquelleAutor der Frage thornomad | 2009-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin nicht sicher, ob es in den besten Geschmack, um Antwort auf meine eigene Frage aber, nach ein bisschen Arbeit, ich habe eine app, die Probleme zu lösen, die im ernst: django-die Option Trefferquote.
Können Sie nachlesen, wie es bei die Dokumentation Seite.
Ideen für django-Option Trefferquote kam, kam von beiden, meine beiden Antworten (Teebes -und- vikingosegundo), das hat mir wirklich mal Gedanken über die ganze Sache.
Dies ist mein Erster Versuch in teilen eine steckbare app mit der community und hoffe, jemand anderes findet es nützlich. Danke!
InformationsquelleAutor der Antwort thornomad
Sollten Sie die django built-in-session-framework bereits eine Menge macht das für Sie. Implementiert habe ich dies in der folgenden Weise mit einem Q&Eine app, wo ich wollte zu verfolgen, views:
in models.py:
in views.py:
Vikingosegundo ist wohl richtig, aber, dass die Verwendung des content-type ist wohl mehr wiederverwendbare Lösung, aber definitiv nicht das Rad neu erfinden in Bezug auf tracking-sessions, Django bereits tut Sie!
Letzte Sache, sollte man wohl der Ansicht, dass Datensätze, die getroffen werden, entweder via Ajax oder css-link, so dass Suchmaschinen nicht rev up Ihr zählt.
Hoffe, das hilft!
InformationsquelleAutor der Antwort Teebes
Ich umbuchen meine Idee, dass ich bereits schrieb, als Antwort auf die genannten Fragen, in denen es nicht erhoben keine Aufmerksamkeit 😀
könnte man erstellen Sie eine generische Hit-Modell
in Ihrem view.py schreiben Sie diese Funktion:
und die Ansichten, die Sie interessiert sind, zurück
Dieser Ansatz gibt Ihnen die Kraft, nicht nur zum zählen der hit, aber zum filtern der Treffer-Geschichte durch die Zeit, contenttype und so weiter...
Als die Treffer-Tabelle sein könnte, der schnell wächst, sollten Sie sich Gedanken über eine Löschung Strategie.
Code ungetestet
InformationsquelleAutor der Antwort vikingosegundo
Ich weiß, diese Frage ist ein Alter und auch thornomad hat eine app um das problem zu lösen und mich begeistern, mit mir die Lösung. Ich möchte diese Lösung, da ich nicht finden viele Informationen über dieses Thema und es kann jemand anderes helfen.
Mein Ansatz ist es, ein generisches Modell kann verwendet werden, mit einer Ansicht basierend auf der view-Pfad (url).
models.py
views.py
InformationsquelleAutor der Antwort Radico
Habe ich es mit Hilfe von cookies. Weiß nicht, ob es eine gute Idee zu tun, oder nicht. Der folgende code sucht für eine bereits set-cookie zuerst, wenn es vorhanden ist, es erhöht die total_view Zähler, wenn Sie es nicht ist des es erhöht sowohl total_views und unique_views. Beide total_views und unique_views sind ein Feld einer Django-Modell.
InformationsquelleAutor der Antwort Mudit Jain
Ich Tat dies, indem Sie ein Modell erstellen Seitenaufrufe und eine Spalte "Hits". Jedes mal, wenn die Homepage-url ist der hit. Ich Inkrement-die erste und einzige Zeile der Spalte Schlagen und machen es zu der Vorlage. Hier, wie es aussieht.
Views.py
Models.py
InformationsquelleAutor der Antwort Pankaj Mishra