django获取参数并传递int类型

时间:2017-09-21 12:20:29

标签: django

我在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参数总是作为字符串传递吗?

1 个答案:

答案 0 :(得分:2)

是的,来自URL的参数始终是字符串,您有责任适当地投射它们。 get_quotes可能返回包含整数price_id的结构,但它通过与URL调用不同的机制获取该值。

price_id中的profile_view在URL配置调用时将始终以字符串形式出现。