Передача данных не из формы Django Шаблон для просмотра - PullRequest
0 голосов
/ 07 апреля 2020

Я работаю для приложения контактов в Django Framework. Он отправляет Otp, используя Twilio API. Теперь для отправки OTP будет вызвано представление send_message. Это представление будет генерировать OTP через случайный процесс. Теперь он отобразит шаблон HTML, чтобы показать, что этот OTP будет отправлен. Если пользователь щелкнет, чтобы отправить новое представление, будет вызвано send_otp, которое отправит OTP получателю. Теперь мой вопрос заключается в том, как бы получить то же значение OTP во втором представлении, которое передается из первого представления в шаблон. Поскольку во втором шаблоне мне нужно отправить OTP.

Views.py

#first view
def send_message(request, id):
    with open('contacts/contact_data.json', 'r') as f:
        contact_list = json.load(f)
    for contact in contact_list:
        if (contact['id'] == id):
            otp = generate_random_otp()
            context = {
                'otp':otp
                'message':text_message,
                'id':id
            }
            return render(request, 'send_message.html', context)
    return render(request, 'send_meassage.html', {})

#second view
def send_otp(request, id):
    #I need to pass OTP to this function send
    date = send(id, otp)
    return render(request, 'about.html')


def send(id,otp):
    client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN)
    with open('contacts/contact_data.json', 'r') as f:
        contact_list = json.load(f)
    for contact in contact_list:
        if (contact['id'] == id):
            message = client.messages \
                .create(
                     body=text_message + " " + str(otp),
                     messaging_service_sid='MG467b0e0b71a08e19d41864d7ae1fc533',
                     to=contact['Phone_number']
                 )

send_message. html

{% extends 'base.html' %}
{% block content %}
<div class="jumbotron">
  <p class="lead">Hi, Your OTP is: {{otp}}</p>
  <hr class="my-4">
  <p class="lead">
    <a class="btn btn-primary btn-lg" href="{% url 'contacts:send_otp' id=id%}" role="button">Send</a>
  </p>
</div>
{% endblock %}

urls.py

urlpatterns = [
    path('', views.contact_list, name='contact_list'),
    path('contact/<int:id>/', views.contact_detail, name='contact_detail'),
    path('contact/send/<int:id>/', views.send_message, name='send_message'),
    path('contact/sendotp/<int:id>/', views.send_otp,name='send_otp')
]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...