我在我的 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/