任何人都有快速网址调度程序示例?我查看了Django文档,但我发现没有一个完整的示例向您展示视图中的所有内容是如何工作的。
具体来说,我试图将“url”从一个视图传递到另一个视图。例如,我正在尝试创建假日网站:如果点击“可用假期”视图中的“欧洲”按钮,我想访问www.example.com/selected/europe,其中显示所有欧洲假期 如果点击名为“澳大利亚”的可用假日视图中的按钮,我想访问www.example.com/selected/australia,同时显示澳大利亚假期。
到目前为止,在url.py中我有:
(r'^selected/(?P<location>\w+)/$', 'app.views.selected'),
在views.py中的我有:
def selected(request, location)
我不知道从哪里去。 此外,如何将“可用假期”视图转移到“选定”视图...
答案 0 :(得分:4)
来自&#34;可用假期&#34;模板,您应该链接到位置页面。
首先,添加&#34;名称&#34;您的网址定义的参数:
(r'^selected/(?P<location>\w+)/$', 'app.views.selected', name='selected_holidays'),
然后,在&#34;可用假期&#34;模板,链接如下:
{% url selected_holidays 'Europe' %}
当然,如果在forloop中使用位置变量:
{% for location in locations %}
<a href="{% url selected_holidays location %}">{{ location }}</a>
{% endfor %}
如果location是模型,那么你应该在模型中添加一个get_absolute_url方法,例如:
from django.core import urlresolvers
class Location(models.Model):
# ... [snip]
def get_absolute_url(self):
return urlresolvers.reverse('selected_holidays', args=(self.location_name,))
然后在模板中:
{% for location in locations %}
<a href="{{ location.get_absolute_url }}">{{ location }}</a>
{% endfor %}
在这种情况下,请更改&#39; selected_holidays&#39;的网址名称。到&#39; location_detail&#39;如果它有意义 - 这在Django中是相当标准的。
如果您希望向前兼容,请按以下方式加载未来的网址标记:
{% load url from future %}
然后,使用带引号的命名url字符串:
{% url 'selected_holidays' 'Europe' %}
嗯,我觉得你们有一些先发球员。您还应该阅读Django网址手册,了解遇到麻烦的地方:) https://docs.djangoproject.com/en/dev/topics/http/urls/