我正在尝试将日期传递给网址标记。这是我的网址正则表达式:
url(r'^fund_details/?startDate=(?P<date_index>\d{2}-\d{2}-\d{4})/?offset(?P<date_offset>\d{2}-\d{2}-\d{4})/
和我的网址标记:
{% url 'fund_monitor:fund_details' start_date offset %}
但是我得到了这个错误
ValueError: invalid literal for int() with base 10: '08-18-2017'
请注意,我的开始日期为'08-18-2017'
。我认为这是因为我的正则表达式正在寻找一个数字而不是字符串。但是,我需要数字之间的-
。我怎样才能做到这一点?
答案 0 :(得分:0)
实现预期结果的更简洁方法是在查询字符串之前指定URL结构,并在视图函数或类中实现逻辑。实际上,您应该具备以下条件:
urls.py
(或包含URL绑定的任何文件名):
url(r'^fund_details/$', YourViewClass.as_view(), name="url_alias")
(请注意最后的$
符号 - 就我的经验而言,即使您的完整网址最后有一个查询字符串,也应该有效。)
views.py
或其他任意命名的文件:
def handle_request(request):
start_date = request.GET["start_date"]
date_offset = request.GET["date_offset"]
# Do your own validation with the acquired input
# Compute the output with the just validated data
使用HTML表单轻松(或更确切地说,自动)完成将查询字符串构造为?startDate=01-01-2017&offset=01-01-2016
。