1

在我的应用程序中,显示有关条目的数据,详细说明了它们的信息。您可以通过超链接在条目之间导航。到目前为止的代码:

<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),

由于空格和逗号等原因,无法正常工作。

我将如何解决这个问题?我还想要“位置”视图和“位置”网址来处理母公司的位置说()

提前致谢

4

4 回答 4

6

为什么不通过 passpark.id然后在 view 中获取 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')
于 2013-02-06T12:42:22.953 回答
1
 url(r'^location/(?P<park_location>[a-zA-Z0-9_.-]+)/$', Location_Main),
于 2013-02-06T11:55:08.893 回答
0

在网址中使用它们之前,您需要从位置名称中删除标点符号和非英语字符。或者,您可以在定义时删除它们park.location

于 2013-02-06T11:55:35.810 回答
0

您可以使用urlencode模板过滤器将字符转义为

<a href="/parks/{{ park.location|urlencode }} ">{{park.location}}</a>

参考这个问题,您可能必须将 url 模式更改为

url(r'^location/(?P<park_location>[\w|\W]+)$', Location_Main)
于 2013-02-06T12:17:56.183 回答