Django:在视图函数中使用默认模板标记

时间:2011-12-08 11:16:42

标签: django

我想在视图函数中重用默认模板标记的代码,因为我可以在视图中使用默认过滤器。

from django.template.defaultfilters import default, urlencode, iriencode
title = default(title_str, "N/A")
..

这是我的 url.py

urlpatterns = patterns("",
     url(r"^artist/(?P<slug>[-\w]+)/$", "app_name.views.artist_details", name="artist_details"),
 )

当我在视图中使用reverse时,

reverse("artist_details", args=[artist.slug])

app crashed bcoz slug有日语,它会出现Exception Type: NoReverseMatch错误,

那么我可以在我的 view.py 中使用{% url %}的代码或其他任何建议吗?

[更新]

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要reverse

答案 1 :(得分:0)

您需要在视图中执行此操作:

from django.utils.encoding import force_unicode, iri_to_uri
reverse("artist_details",args=[force_unicode(iri_to_uri(artist.slug))])