Я работаю для приложения контактов в 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')
]