Django 信号获取请求完整路径

标签 django path request signals

我在我的 django 项目中写了一个信号,我想在里面发送一封包含我网站完整路径的电子邮件。但是要这样做,我需要在信号中获取请求对象,我该怎么做呢?谢谢。

    @receiver(pre_save, sender=AccessRequest)
    def email_if_access_true(sender, instance, **kwargs):
        #How can I get the full path of my website here?
        pass

最佳答案

如果您无权访问请求对象,则可以使用 Site 模型管理器的 get_current() 方法。

from django.contrib.sites.models import Site

@receiver(pre_save, sender=AccessRequest)
def email_if_access_true(sender, instance, **kwargs):
    current_site = Site.objects.get_current()
    if current_site.domain == 'foo.com':
        #do other stuff here
    else:
        pass

您需要确保在设置中定义了 SITE_ID=1

关于Django 信号获取请求完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15520246/

相关文章:

python - 如何在 django Rest 中自动继承外键模型的字段?

python - Django累积总和或运行总和

PHP fatal error 无法打开所需文件

AJAX 请求中的 Javascript

python - 一旦所有页面都循环并将值附加到我的列表中,如何将抓取的值存储到数据框中?

python - 我将 djang1.3.1 更新为 djang1.4 ,错误 : MOD_PYTHON ERROR

Python、Django : Limit IntegerField inside models. py

ruby - 为什么 bash -l -c "CMD"让 ruby 找到我的 gem ?

windows - 在 'Lua for windows' 中设置运行文件的路径

ios - Swift 中的 Soap 请求错误代码 500