【发布时间】:2011-05-25 18:06:10
【问题描述】:
我在通过 URL 模式传递模型对象值时遇到问题。网址:
url(r'^cities/(?P<city>\w+)/$', 'city_firm', name='city_firm'),
在模板中(来自索引页)我有:
<a href="{% url city_firm city %}">{{ city }}</a>
这是在 for 循环中。
相关视图为:
def city_firm(request, city):
city1 = Cities.objects.get(city=city)
cityf = city1.Firms.all()
return render_to_response('cityfirm.html', {'cityf': cityf})
这两个模型(Cities、Firms)是多对多关系。
我不断在索引处收到TemplateSyntaxError (NoReverseMatch while rendering: Reverse for 'city_firm' with arguments '(<Cities: >,)' and keyword arguments '{}' not found)。在我尝试的模板链接标签中:{% url city_firm city=city %},{% url city_firm city=cities.city %}。没有改变。 urlconf 部分似乎是正确的。问题似乎出在模板中。对象的字符串值可能存在问题,因为它们不是英文的。但是我采取了一些预防措施来防止这种情况发生。视图可能有问题,但错误显示模板。有什么想法吗?
解决方案:
感谢大家!最后我想通了。问题很简单:我试图通过包含非英文字符和空格的 url 发送对象属性名称。为了修复它,我不得不编辑我的模型。
【问题讨论】:
-
尝试发送
city.city而不是city -
如果您解决了自己的问题,请将其作为答案提供并接受
标签: django django-urls django-templates