我在设置文件中设置了法语django网站。
在我的模板中,我有以下条目<a href="/{{ year }}/{{ month|date:"b" }}/">{{ month|date:"F" }}</a>
。
在我的URLconf中,我有条目url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{1,2})/$',MonthArchivePostView.as_view())
问题是在模板中,生成的日期是法语(例如,2月份,我有<a href="/2012/fév/">Février</a>
),但网址需要英文版本(/2012/feb/
)。 / p>
我不介意在英文或法文中使用网址中的日期,我只需要在模板中生成相同的内容并在URLconf文件中预期。
谢谢
更新快速解决方案 - 不是真正的解决方案:在任何地方使用m
格式而不是b
来/02/
代替/feb/
所以在urls.py
url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/$',
MonthArchivePostView.as_view()
),
和通用视图
class MonthArchivePostView(dates.MonthArchiveView):
model = Post
month_format = '%m'
date_field = 'publish'
答案 0 :(得分:3)
您可以使用unlocalize
来避免模板中的本地化。
答案 1 :(得分:1)
正如@jkbr已经说过的那样,unlocalize应该可以胜任。
除此之外,您是否曾考虑在条目模型的模型定义中添加函数'get_absolute_url(self)'
,而不是在模板中定义网址?
最好将分离的内容定义(模型)与内容呈现(模板)保持一致。
它也可以帮助您解决问题。
尝试在输入模型的末尾添加与此类似的功能:
def get_absolute_url(self):
from time import strftime
return "%s%s" % (settings.SITE_URL,strftime("%Y/%b/",self.creation_date))
这应该有效(如果我理解正确,那就是显示数据而不是解析数据,如Django文档的Format localization部分所述。
然后在您的模板中,您可以执行以下操作:
<a href="{{entry.get_absolute_url}}">{{ month|date:"F" }}</a>