2010-07-01 5 views
0

J'ai rencontré un problème avec mon projet django. Le problème est que j'ai un projet, qui va récupérer des données pour les utilisateurs de différents clients. J'ai besoin de savoir d'où vient un spectateur (request.path [ma solution originale]). J'ai regardé un certain nombre d'options différentes qui sonnent près de ce que je veux faire, mais je ne suis pas sûr de la meilleure option, n'ayant pas fait cela auparavant. Ma première option était d'ajouter une URL dans l'urls.py avec un 'tag' ou un 'mot-clé', puis de rechercher cette balise/mot-clé dans le request.path, que j'ajouterais comme clé de session. Ensuite, allez sur obtenir les données.Chemins de requête Django

Autre chose que j'ai commencé à regarder était le cadre de sites. Après avoir lu la documentation, je ne comprends toujours pas comment fonctionnent les sites, donc je ne suis pas sûr que ce soit la bonne option.

Une autre solution a parlé de l'utilisation de middleware, cela est venu dans le cadre de la recherche sur l'utilisation de la structure des sites.

Et encore un autre a parlé de faire cela dans Apache.

Est-ce que quelqu'un pourrait m'aider dans la bonne direction?

Cheers,

T

Répondre

0

Il n'est pas tout à fait claire de votre question, mais si vous demandez l'URL que l'utilisateur était avant de venir à la page en cours, vous voulez probablement request.META['HTTP_REFERRER'].

Modifier après commentaire

Ce serait un très mauvaise idée. Les variables globales ne sont pas sécurisées étant donné que vous avez potentiellement plusieurs demandes traitées en même temps. Le référent est déjà disponible à partir de la requête, accessible dans toutes les vues et tous les modèles, donc je ne sais pas ce qu'un middleware pourrait vous offrir.

+0

Oui, j'ai besoin de savoir d'où ils viennent. Cela doit se produire avant de charger les modèles car leur origine déterminera le style, les données ... Je pense essayer la solution middleware et essayer de créer un mot clé global basé sur le référant qui sera disponible dans mes vues et modèles. Merci –

+0

D'accord, merci, je ne le savais pas. –

0

Si vous avez besoin de savoir à partir de quelle URL votre utilisateur a accédé à votre page d'actualité, vous devez vérifier l'en-tête HTTP de REFERER, disponible dans request.META.get ('HTTP_REFERER'). Voir http://docs.djangoproject.com/en/1.2/ref/request-response/#ref-request-response pour plus d'informations.

Attention toutefois, la méta referer n'est pas obligatoire et peut être manquante en raison d'une navigation privée ou d'un accès direct à la page depuis la barre d'URL.