我在urls.py中有以下条目
url(r'^profile/(?P<price_id>[0-9]+)$', views.profile_view, name='profile'),
以下模板片段生成price_id参数: '继续'
这由以下视图呈现:
class QuotesResultsView(ListView):
template_name = 'pages/quotes_results.html'
paginate_by = 20
context_object_name = 'quotes_results'
def get_queryset(self):
session = self.request.session
quotes = get_quotes(session) # return iterable from external api
quotes_results = quotes['searchResults']
return quotes_results
当在渲染模板中单击按钮时,它会通过(通过url到下面的视图):
def profile_view(request, price_id):
request.session['price_id'] = int(price_id)
....
然而,price_id参数作为字符串到达视图,例如'8234234'而不是我必须隐藏的int。在早期的QuotesResultsView中,price_id是quotes_results中的一个int,但是在它之间它和它出现在下一个视图中的字符串是什么? GET参数总是作为字符串传递吗?
答案 0 :(得分:2)
是的,来自URL的参数始终是字符串,您有责任适当地投射它们。 get_quotes
可能返回包含整数price_id
的结构,但它通过与URL调用不同的机制获取该值。
price_id
中的profile_view
在URL配置调用时将始终以字符串形式出现。