【发布时间】:2017-05-23 15:19:48
【问题描述】:
如何将“标题”添加到上下文中,以便在模板中访问它。我想它需要通过才能以某种方式获取请求?将这个变量传递给 FormView 类中的 get 方法的 Pythonic 方法是什么?
views.py
class IndexView(FormView):
template_name = 'index.html'
form_class = CheckForm
success_url = reverse_lazy('index')
def form_valid(self, form, **kwargs):
context = self.get_context_data(**kwargs)
context['headers'] = form.result()
return super(IndexView, self).form_valid(form)
index.html
<form action="." method="post" name="url" id="url" novalidate>
{{ form.as_p }}
{% csrf_token %}
<button type="submit">Check</button>
{% if headers %}
{% for k,v in headers %}
{{ k }}: {{ v }}<br>
{% endfor %}
{% else %}
<br>No data
{% endif %}
forms.py
from django import forms
import requests
class CheckForm(forms.Form):
url = forms.URLField(max_length=255, label='')
def result(self):
cd = self.cleaned_data
url = cd['url']
r = requests.get(url)
r.headers
return r
urls.py
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
]
【问题讨论】:
-
您是否尝试过返回
r.headers而不是r?