シグナルを使用してログインしようとしているユーザーのIPアドレスを記録しようとしています。これはどうすればいいですか?Django:シグナルを使用してIPアドレスを取得する
私はログインの日時をすでに取得しています。
#models.py
class UserLogin(models.Model):
"""user details when logging in"""
user = models.ForeignKey(User)
timestamp = models.DateTimeField(auto_now=True)
これは信号のためです:
#models.py
def user_login_save(sender, instance, **kwargs):
if instance.last_login:
old = instance.__class__.objects.get(pk=instance.pk)
if instance.last_login != old.last_login:
instance.userlogin_set.create(timestamp=instance.last_login)
models.signals.post_save.connect(user_login_save, sender=User)
私が使用してIPアドレスを取得する方法を知っているものの:request.METAは[REMOTE_ADDR]私の問題は、私は私のモデルに要求インスタンスを使用することができないということです。要求から何かを得ることが良い習慣であるかどうかも私は確信していません。
これを行う推奨方法は何ですか?
ご返信いただければ幸いです。
よろしく、 Wenbert
答えはありませんが、良いアドバイスです... –
@ Frost.baka:答えだと思います。その答えは「それはやってはいけない」ということです。 –
私はdjangoを初めて使用していますが、私はビュー(myapp/user/login(?))を持たないデフォルトのdjango認証を使用しています。私はIPアドレスを追加して渡すことができるように、ログインのデフォルトビューを "どのように"拡張するのですか?私の理解では、私は私の視点でIPアドレスを取得し、どこかにそれを渡すだろう... – wenbert