Итак, я шел через Rango, Джанго учебник:CSRF Verification Failed - Джанго
(http://www.tangowithdjango.com/book17/chapters/bing_search.html)
Я реализующий в основном то же самое, но изменяя его, чтобы сделать запрос на Хранитель API открытой платформы. Я думаю, что большинство из них правильное, но каждый раз, когда я пытаюсь выполнить поиск, я получаю ошибку CSRF token missing or incorrect
. У меня был хороший поиск вокруг и пробовал много разных решений, но ничего не работает!
Включенная страница html, views и guardian_search.
search.html:
{% extends 'rango/base.html' %}
{% load staticfiles %}
{% block title %}Search{% endblock %}
{% block body_block %}
<div class="page-header">
<h1>Search with Rango"</h1>
</div>
<div class="row">
<div class="panel panel_primary">
</br>
<form class="form-inline" id="user_form" method="post" action="{ url 'search' %}">
{% csrf_token %}
<!-- Display the search form elements here -->
<input class="form-control" type="text" size="50" name="query" value="" id="query" />
<input class="btn btn-primary" type="submit" name="submit" value="Search" />
<br />
</form>
<div class="panel">
{% if result_list %}
<div class="panel_heading">
<h3 class="panel-title">Results</h3>
<!-- Display search results in an ordered list -->
<div class="panel-body">
<div class="list-group">
{% for result in result_list %}
<div class="list-group-item">
<h4 class="list-group-item-heading"><a href="{{ result.url }}">{{ result.title }}</a></h4>
<p class="list-group-item-text">A summary here?</p>
</div>
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}
views.py:
from django.template import RequestContext
from django.shortcuts import render_to_response
from rango.bing_search import get_content
def search(request):
result_list = []
if request.method == 'POST':
query = request.POST['query'].strip()
if query:
result_list = get_content(query)
return render_to_response('rango/search.html', {'result_list':result_list})
guardian_search.py:
import requests
import pprint as pp
def get_content():
api_url = 'http://content.guardianapis.com/search?'
payload = {
'q': raw_input(''),
'api-key': 'api_key',
'page-size': 10,
'show-editors-picks': 'true',
'show-elements': 'None', #'audio', 'image', 'video', 'all'
'show-fields': 'None', #'headline' , 'body'
'field': 'None',
}
response = requests.get(api_url, params=payload)
data = response.json()
urlList = []
for item in data['response']['results']:
urlList.append({
'url': item['webUrl'],
'title': item['webTitle']})
pp.pprint(urlList)
return urlList
if __name__ == '__main__':
get_content()
Если есть что-нибудь еще, что было бы полезно, дайте мне знать, и Я добавлю.
Спасибо заранее!
Отлично. Это сработало с добавлением функции 'guardian_search'' q' в качестве условия поиска 'raw_input'. Благодаря!! – sammy88888888