Как я могу использовать объект json из файла (например, text.json) для чтения из моего шаблона электронной почты в Django

Я использую Django для отправки шаблонов электронной почты пользователю. Я хочу хранить весь текст, отображаемый в шаблоне HTMl в объекте json и ссылаться на текст как на переменную, двойной {{}} в шаблоне html письма

-------> util.py

def send_reset_password_email(user: User):
    reset_token = create_user_reset_password_token(user)
    reset_password_url = '{}/account/password/reset/{}'.format(settings.CLIENT_URL, reset_token)
    params = {
        'reset_password_url': reset_password_url,
        'textdata':   ### how I can reference my json file here
    }
    send_template_email(user.email, 'Reset Password','reset_password.html', params)

------->text.json file
{
  "forget_password_email_template": {
    "title": "This is title",
    "sub_title": "This is Sub title",
    "support": "This is title",
    "help_message": "This is help message"
  },
  "confirmation_email_template": {
    "title": "This is title",
    "sub_title": "This is Sub title",
    "support": "This is title",
    "help_message": "This is help message"
  }
}
-------> reset_password.html
<html>
.......
 <p style="margin: 0;" class="forget-password-text">
Forgot your password? Let’s get you a new one! {{params.textdata}}</p><br>
.....
<<html/>

Я пробовал import json, но это не сработало. Спасибо, и если есть другой лучший способ достичь этого?

Похоже, вы на правильном пути. Это должно помочь:

import json
 
with open('text.json') as json_file:
    data = json.load(json_file)

    params = {
        'reset_password_url': reset_password_url,
        'textdata': data,
    }

Я решил эту проблему, разместив file.json на том же уровне manage.py. см. скриншот ниже! и затем

import json
 
with open('emails_text.json') as json_file:
    data = json.load(json_file)

    params = {
        'reset_password_url': reset_password_url,
        'textdata': data,
    }

enter image description here

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