DJANGO: Установите site_id для сайтов pk

Я следую этому руководству для проверки электронной почты. Версия, с которой работает автор, старая. Я получил ошибку, которая гласила. Reverse for ‘activate’ with keyword arguments ‘{‘uidb64’: b’OA’, ‘token’: ‘4tm-3fcfb375c8ba14f9a95b’} . Я исправил это через первый комментарий. Письмо было отправлено .Но ссылка вела на www.example.com . Во втором комментарии написано, как это исправить. Комментарий был следующим: Для тех, кто использует Django 3, вы должны изменить некоторый код

  1. Six is deprecated in Django 3, you can use ‘import six’ instead of ‘from django.utils import six’
  2. To send html email, add email.content_subtype = “html” after EmailMessage Object.
  3. activate url should be path(‘activate//’, views.activate, name=’activate’),
  4. get_current_site(request) will return example.com as default when SITE_ID=1 in your settings.py. Add your site name and domail in admin site (/admin/sites/site/) and replace SITE_ID with your sites pk.

Но я не понял, как установить SITE_ID для моих сайтов pk.

In settings.py set

BASE_URL = 'https://www.yourdomainname.com'

Не включайте трелинг / Также, вы должны упомянуть эту строку в том же файле

SITE_ID = 1

Более того, перейдите на ваш django admin канал, по умолчанию /admin, и перейдите на sites вкладку/модель и добавьте/отредактируйте ваш site в соответствии с вашими ip/domainName и display name. Это important part нужно сделать.

Если вы пока тестируете локально, то можете использовать 127.0.0.1:8000 в ip/domainName и yourdomainNAme.com в display name

Если вы развертываете или используете live, вы можете использовать фактический ip вашего сервера в ip/domainname или также вы можете использовать ваше доменное имя (поскольку оно сопоставлено с вашим ip через систему DNS) и отображаемое имя будет таким же.

Надеемся, это решит вашу проблему или вопрос.

Вернуться на верх