我有一个带有两个参数(请求、响应)的视图。但是当这个视图被调用时,我得到一个错误,上面写着 - “figure() missing 1 required positional argument: 'response'”
views.py:
def figure(request, response):
print("request ->", request)
figures = add_data_to_class(request)
figures_dict = []
for figure in figures:
figures_dict.append({
"date":figure.date,
"price_new":figure.price_new,
"price_used":figure.price_used,
})
print(figures_dict)
context = {"figures":figures_dict}
return render(response, "app1/figure_data_page.html", context, RequestContext(request))
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.figure, name="figure")
]
figure_data.html
<form action="main\app1\views.py" method="post" id="figure_choice_form">
<label for="id">Enter ID</label>
<input type="text" id="id">
</form>
一个视图收到一个请求“在这个 URL 上给我一个页面”并返回一个响应“好的 - 这是一个模板和一些上下文”。在您看来,响应是由 render() 函数返回的,而渲染函数希望请求作为第一个参数 - 您正在给出响应。
如果您想访问视图的响应,您可以将它分配给一个变量而不是返回它(您必须稍后实际返回它或类似的东西)。
response = render(request, "app1/figure_data_page.html", context, RequestContext(request))
print(response)
context['response'] = response
但是要求它作为视图参数并没有多大意义(除非您需要完全不同的视图的响应),因为视图应该自己生成响应。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句