django 신호에서 내 웹 사이트 주소로 전자 메일을 보내려고합니다. 나는이 질문에 발견Django : 신호 처리기에서 도메인 이름을 얻는 방법
AttributeError: 'NoneType' object has no attribute 'get_host'
내 코드에서 get_current_site
에서 오는 :
@receiver(post_save, sender=MyModel)
def post_obj_save(sender, instance: MyModel, **kwargs):
def _get_html(obj: MyModel):
return render_to_string('confirmation_email.html', _get_context(obj))
def _get_context(obj: MyModel):
current_site = get_current_site(request=None)
domain = current_site.domain
action = reverse('obj_activation', request=None, format=None, kwargs={})
url = '{protocol}://{domain}/{action}'.format(protocol=PROTOCOL, domain=domain, action=action)
return {
'header': _('Thank you for registering with ASDF.'),
'prompt': _('In order to be able to log in into ASDF administrator panel, you have to activate your account using'),
'link_name': _('this link'),
'activation_url': url
}
send_mail(
_('ASDF account activation'),
_get_html(instance),
EMAIL_FROM,
[obj.owner.email],
fail_silently=False,
)
그래서 질문입니다. 신호에서 내 전체보기 URL을 얻으려면 어떻게해야합니까?
btw. 나는 django-rest-framework
을 사용하고 있습니다. 최근 장고 버전 (아마도 귀하의 경우)에
사실 나는 django v1.9.7 :)을 사용하고 있습니다. 네가 대답 할거야, 고마워. –
hehe .. 예, 답변을 업데이트했습니다. – trinchet