我为它写了一个index.html和一个views.py。我得到了日期并将月份数据转换为口头,如下所示。它适用于索引页面,但是当我从其他页面扩展索引页面时,日期不会出现。
def index(request):
datenow = date.today()
datemonth = date.today().month
if datemonth == 8:
date_month="Ağustos"
elif datemonth == 9:
date_month = "Eylül"
elif datemonth == 10:
date_month = "Ekim"
elif datemonth == 11:
date_month ="Kasım"
elif datemonth == 12:
date_month ="Aralık"
elif datemonth == 1:
date_month ="Ocak"
elif datemonth == 2:
date_month ="Şubat"
elif datemonth == 3:
date_month ="Mart"
elif datemonth == 4:
date_month ="Nisan"
elif datemonth == 5:
date_month ="Mayıs"
elif datemonth == 6:
date_month ="Haziran"
elif datemonth == 7:
date_month ="Temmuz"
news = New.objects.all()[:10]
programs= Program.objects.filter(date=date.today())
print date.today()
print date_month
template = "index.html"
context = {'news':news,
'programs':programs,
'datenow':datenow,
'date_month':date_month}
return render_to_response(template,context,context_instance=RequestContext(request))
答案 0 :(得分:7)
如果您想在每个页面中使用此日期和时间,则必须使用Django上下文处理器Link Here
def datetime(request):
datenow = date.today()
datemonth = date.today().month
if datemonth == 8:
date_month="Ağustos"
elif datemonth == 9:
date_month = "Eylül"
elif datemonth == 10:
date_month = "Ekim"
elif datemonth == 11:
date_month ="Kasım"
elif datemonth == 12:
date_month ="Aralık"
elif datemonth == 1:
date_month ="Ocak"
elif datemonth == 2:
date_month ="Şubat"
elif datemonth == 3:
date_month ="Mart"
elif datemonth == 4:
date_month ="Nisan"
elif datemonth == 5:
date_month ="Mayıs"
elif datemonth == 6:
date_month ="Haziran"
elif datemonth == 7:
date_month ="Temmuz"
context = {'datenow':datenow,'date_month':date_month}
return context
在settings.py 中
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.csrf',
# Custom Context Proccessors
'apps.your-app.context_processor.datetime',
)
然后在HTML文件中,您可以使用
{{ datenow }}
和{{ date_month }}
答案 1 :(得分:0)
据我所知。你有一个从另一个页面延伸的页面。但是另一页没有显示继承的数据。
这只是因为index.html
是从views.py
调用的。变量和更新从view.index()
当另一个页面继承index.html
时,它不会更新日期只是因为它是由另一个函数处理而不是views.index()
(我希望我的想法在这里很清楚)。
一个简单的解决方案就是复制views.index的内容并将变量再次发送到新的html模板。
答案 2 :(得分:0)
如果我理解你的问题,那么我认为你假设扩展index.html页面还扩展了def index(request)
定义的视图。不幸的是,您必须在每个视图中提供日期变量,因为模板index.html
仅提供了以html格式查看变量的方法。
这不是在每个视图中重复日期格式代码,而是自定义模板过滤器的好例子。看看将上面的索引函数转换为模板标签(请参阅https://docs.djangoproject.com/en/dev/howto/custom-template-tags/),然后您可以在视图中设置日期,例如。
def my_other_view(request):
context = {'date': my_date }
然后在您的模板文件中,您可以像这样构建使用my_date_template_filter
{extend 'index.html'}
{% block content %}
{{ my_date|my_date_template_filter}}
{% endblock %}
当然,您必须定义上面链接中定义的自定义模板过滤器。