当我点击'Home'时,我预计我将被重定向到index.html
。Django进入存档页面后无法进入索引页面
但是在我访问我的档案页面(journal.html
)(类似“/杂志/ 2014/01”这是从数据库中查询)
我不能去索引页或其他地方,只在页面如/journal/Year/Month
或/journal/Year
。
因为当我试图去index.html
它重定向我/journal/Year/Month/index.html
为什么?
我的urls.py:
urlpatterns = patterns(
'',
url(r'^$', index),
url(r'^index.html$', index),
url(r'^journal.html$', journal),
url(r'^contact.html$', contact),
url(r'^about.html$', about),
(r'^journal/(\d{4})$', journal),
(r'^journal/(\d{4})/(\d{2})$', journal),
url(r'^auth.html$', auth),
url(r'^logout.html$', logx),
url(r'^admin/', include(admin.site.urls)),
# develop
url(r'^Observations/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': MEDIA_ROOT}),
)
我的应用程序/ views.py:
def index(request):
if request.user.is_authenticated():
return render_to_response('index.html', {'user': request.user})
else:
return render_to_response('index.html')
def journal(request, *args):
# print args
if request.user.is_authenticated():
obss = Obs.objects.all()
if len(args)>0:
year = args[0]
# print 'year', year
obss = obss.filter(date__year=year)
if len(args) > 1:
month = args[1]
obss = obss.filter(date__month=int(month))
# print 'month', month
ar_obs = Obs.objects.all()
archive = create_archive_data(ar_obs)
return render_to_response('journal.html', {'obss': obss, 'user': request.user,
'archive_counts': archive})
else:
state = "Please log in below..."
# return HttpResponseRedirect('auth.html', {'state': state})
return render_to_response('auth.html', {'state': state})
一个很好的答案,但为什么你想在你的URL的末尾添加'.html'吗? Django的长度使它很容易支持漂亮的URL,看起来像这样毁了它似乎是一种耻辱。我是否错过了某些好处,或者您是否在OP中选择忽略它? – ptr
@PeteTinkler是的,我同意这是丑陋的,没有必要在网址中有'.html',但我假设OP有这样做的理由(可能将现有的网站转换为Django) – Anentropic
谢谢。这是Home。我更改为Home。感谢您的建议! – Viktor