Comment stocker l'adresse IP dans la base de données et django admin
Souhaitez stocker l'adresse IP de tout le monde qui est à venir sur le site. Quelle est la meilleure approche pour ce faire. Permet de dire ont le modèle
class ip(models.Model):
pub_date = models.DateTimeField('date published')
ip_address = models.GenericIPAddressField()
Quel serait le code dans les modèles ou dans les vues ou quelque part que je voudrais l'enregistrer dans la base de données tiens également à l'enregistrer avec le user-agent info semblable à cela.
source d'informationauteur Radek
Vous devez vous connecter pour publier un commentaire.
Dans views.py:
views.py:
J'ai donné l'exemple de @Sahil Kalra à l'aide du middleware,
Modèle:
Middleware:
Enregistrer le middleware de la place dans votre dossier de projet et Dans le fichier de paramètres ajouter ce middleware. Voici la référence Comment définir django middleware dans le fichier de paramètres
Vous pouvez récupérer l'Adresse IP de très facilement dans votre views.py.
Que vous souhaitez enregistrer l'agent de l'utilisateur, indépendamment de l'URL ou de la Vue, qui est appelé il n'a pas de sens à écrire ce code dans les points de Vue ou des Modèles.
Vous devriez écrire un Middleware qui pourraient faire le travail pour vous.
En voir plus sur Django middleware : https://docs.djangoproject.com/en/1.6/topics/http/middleware/
Vous souhaitez monter le
process_request()
méthode de votre coutume de middleware pour obtenir le IPaddress et le useragent de demande d'objet et de le stocker dans IP modèleLe lien ci-dessus vous donnera une clarté absolue de savoir quoi faire.