在我的应用程序中,显示有关条目的数据,详细说明其信息。您可以通过超链接在条目之间导航。 到目前为止代码:
<a href="/parks/{{ park.id }} ">{{park.name}}</a>
处理这个问题已经足够了。 id会在urls.py中捕获到views.py
上我现在面临的问题是处理我的“位置”条目。地点的例子是'欧洲,英国','美国,纽约'。 我知道:
<a href="/parks/{{ park.location }} ">{{park.location}}</a>
使用:
url(r'^location/(?P<park_location>\d+)$', Location_Main),
由于空格和逗号等,将无效。
我该如何解决这个问题? 我还想要'位置'视图和'位置'网址来处理母公司的位置说()
提前致谢
答案 0 :(得分:6)
为什么不传递传递park.id
然后在视图中获取park对象然后获取其位置:
网址:
url(r'^location/(?P<park_id>\d+)$', Location_Main, name="park_location"),
模板:
<a href="{% url park_location park.id %}">{{park.location}}</a>
观点:
def Location_Main(request, park_id):
park = get_object_or_404(Park, pk=park_id)
location = park.location
或者将位置发送为GET
参数:
网址:
url(r'^location/$', Location_Main, name="park_location"),
模板:
<a href="{% url park_location %}?location={{park.location}}">{{park.location}}</a>
观点:
def Location_Main(request):
location = request.GET.get('location')
答案 1 :(得分:1)
url(r'^location/(?P<park_location>[a-zA-Z0-9_.-]+)/$', Location_Main),
答案 2 :(得分:0)
在网址中使用之前,您需要从位置名称中删除标点符号和非英文字符。或者,您可以在定义park.location
时删除它们。
答案 3 :(得分:0)
您可以使用urlencode
模板过滤器将字符转义为
<a href="/parks/{{ park.location|urlencode }} ">{{park.location}}</a>
参考this question,您可能需要将网址格式更改为
url(r'^location/(?P<park_location>[\w|\W]+)$', Location_Main)