मैं अपने Django एप्लिकेशन में विशेष रूप से लॉगिन, लॉगआउट और असफल लॉगिन ईवेंट के लिए उपयोगकर्ता आईपी पता लॉग करना चाहता हूं। मैं Django builtin कार्यों का उपयोग कर रहा इस प्रकार है:उपयोगकर्ता_login_failed सिग्नल के लिए Django लॉग उपयोगकर्ता आईपी
from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed
from ipware.ip import get_ip
import logging
logger = logging.getLogger(__name__)
def log_logged_in(sender, user, request, **kwargs):
logger.info("%s User %s successfully logged in" % (get_ip(request), user))
def log_logged_out(sender, user, request, **kwargs):
logger.info("%s User %s successfully logged out" % (get_ip(request), user))
def log_login_failed(sender, credentials, **kwargs):
logger.warning("%s Authentication failure for user %s" % ("...IP...", credentials['username']))
user_logged_in.connect(log_logged_in)
user_logged_out.connect(log_logged_out)
user_login_failed.connect(log_login_failed)
मुद्दा यह है कि मैं के बाद से इस समारोह मापदंडों में request
नहीं है user_login_failed
संकेत के लिए आईपी प्राप्त करने के लिए एक तरह से नहीं मिला है है (https://docs.djangoproject.com/en/1.7/ref/contrib/auth/#module-django.contrib.auth.signals) । credentials
पैरामीटर एक शब्दकोश है जिसमें केवल username
और password
फ़ील्ड शामिल हैं।
मुझे इस सिग्नल के लिए आईपी पता कैसे मिल सकता है?
आपकी सहायता के लिए अग्रिम धन्यवाद।