Python Django-从模板检索api url并传递到视图
我正在使用Cryptocompare.com api从CryptoCurrences world加载新闻。在模板中,我循环浏览它,并在主页上显示它。我想添加一个功能,如果你点击“发送”按钮,它会向你发送一封包含你刚才点击的新闻链接的电子邮件。最好的方法是什么?我试过了,但我不知道如何将单击的元素与视图中的url链接起来Python Django-从模板检索api url并传递到视图,python,django,api,templates,Python,Django,Api,Templates,我正在使用Cryptocompare.com api从CryptoCurrences world加载新闻。在模板中,我循环浏览它,并在主页上显示它。我想添加一个功能,如果你点击“发送”按钮,它会向你发送一封包含你刚才点击的新闻链接的电子邮件。最好的方法是什么?我试过了,但我不知道如何将单击的元素与视图中的url链接起来 def home(request): # Grab Crypto News api_request = requests.get('https://min-api
def home(request):
# Grab Crypto News
api_request = requests.get('https://min-api.cryptocompare.com/data/v2/news/?lang=EN')
api = json.loads(api_request.content)
return render(request, 'crypto/crypto_home.html', {'api': api})
def SendLink(request):
if request.method == 'POST':
subject = 'Link to crypto news'
from_email = 'test@gmail.com'
message = 'Hello {}, here is your link:'.format(request.user)
to_email = [request.user.email]
send_mail(
subject,
message,
from_email,
to_email
)
return HttpResponseRedirect(reverse('crypto-home'))
模板:
{% for x in api.Data %}
<div class='col-sm'>
<div class="card">
<img class="card-img-top" src="{{ x.imageurl }}" alt="{{ x.source }}">
<div class="card-body">
<h5 class="card-title">{{x.title}}</h5>
<p class="card-text">{{ x.body|safe }}.</p>
<div class="btn-group btn-group-sm" role='group'>
<a href="{{x.url}}" target="_blank" class="btn btn-primary">Read More</a>
<form method="post" action="{% url 'send_link' %}">
{% csrf_token %}
<button id="{{x.id}}" target="_blank" class="btn btn-primary">Send to e-mail</button>
</form>
</div>
</div>
</div>
</div>
{% endfor %}
{%for api.Data%中的x}
{{x.title}}
{{x.body | safe}
{%csrf_令牌%}
发送电子邮件
{%endfor%}
我想将模板“x.url”的链接添加到视图,以便能够将链接添加到消息变量。我还试图通过新闻ID将其链接,但我无法将其传递给视图。你知道我怎么做吗?谢谢看起来您需要在表单中添加一个隐藏字段,以便将URL传递到视图:
<input type="hidden" id="URL" name="URL" value="{{x.url}}">
一旦您的视图中有了该变量,您应该能够将其添加到电子邮件模板中。以及如何访问视图中的“值”?我可以通过以下方式在视图中访问它:request.POST['URL']