Это мой кодОбратный URL не показывает полный URL в Джанго
#Send mail to admin
admin_subject = "New question added"
admin_message = "A new question has been successfully added. Please review and approve it."
url = reverse("admin:appname_question_change", args=(new_question.pk,))
admin_html_message = "<h3>%s</h3>\
<p>%s</p>\
<a href='%s'>%s</a>" % (admin_subject, admin_message, url, url)
Я использовал это, чтобы отправить в почте. До того, как я получил полный URL-адрес в своей почте. Как http://192.168.1.0:8000/admin/appname/answer/12
Но теперь она только дает путь, как /admin/appname/answer/12
Я не измененном ничего просто добавил тот же код для других представлений.
Мой новый код:
from django.http import HttpRequest
admin_subject = "New question added"
admin_message = "A new question has been successfully added. Please review and approve it."
location = reverse("admin:appname_question_change", args=(new_question.pk,))
url = HttpRequest.build_absolute_uri(location)
admin_html_message = "<h3>%s</h3>\
<p>%s</p>\
<a href='%s'>%s</a>" % (admin_subject, admin_message, url, url)
mail_admins(admin_subject, admin_message, fail_silently=False, connection=None, html_message=admin_html_message)
Все еще получаю эту ошибку:
unbound method build_absolute_uri() must be called with HttpRequest instance as first argument (got str instance instead)
'reverse' не будет создавать абсолютные URL-адреса. Используете ли вы другой шаблон электронной почты или функцию «обратного» для создания URL-адресов раньше? –
Да, я использовал функцию «reverse». –