这可能很简单,但我环顾四周,找不到答案.从Django模板引用列表中的单个项目的最佳方法是什么?
换句话说,我如何{{ data[0] }}在模板语言中做相同的操作?
谢谢.
我在db中的isoformat中有日期,%Y-%m-%d但是当日期传递给模板时,它就像是一样Oct. 16, 2011.
无论如何,我可以操纵格式到我想要的任何东西?
我有一个基本的问题,在Django模板语言中,如何判断你是否处于"for循环"的最后一次循环迭代?
问题中最重要的部分是主题.
我想知道哪种标签最适合哪种情况.而且......我找到了代码,它也settings.STATIC_URL包含{{STATIC_URL}}在模板中.
我有点困惑.
按照此处找到的教程,我无法创建自定义500或404错误页面.如果我输入了错误的网址,该页面会为我提供默认的错误页面.有什么我应该检查,以防止自定义页面显示?
文件目录:
mysite/
mysite/
__init__.py
__init__.pyc
settings.py
settings.pyc
urls.py
urls.pyc
wsgi.py
wsgi.pyc
polls/
templates/
admin/
base_site.html
404.html
500.html
polls/
detail.html
index.html
__init__.py
__init__.pyc
admin.py
admin.pyc
models.py
models.pyc
tests.py
urls.py
urls.pyc
view.py
views.pyc
templates/
manage.py
Run Code Online (Sandbox Code Playgroud)
在mysite/settings.py中我启用了这些:
DEBUG = False
TEMPLATE_DEBUG = DEBUG
#....
TEMPLATE_DIRS = (
'C:/Users/Me/Django/mysite/templates',
)
Run Code Online (Sandbox Code Playgroud)
在mysite/polls/urls.py中:
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)
Run Code Online (Sandbox Code Playgroud)
我可以发布任何其他必要的代码,但是如果我使用错误的网址,我应该如何更改以获取自定义500错误页面?
编辑
解决方案: 我有一个额外的
TEMPLATE_DIRS …Run Code Online (Sandbox Code Playgroud) 我正在使用存储一些额外的每用户信息AUTH_PROFILE_MODULE.
我们可以使用Django模板访问用户,{{ request.user }}但是我们如何访问配置文件中的字段,因为配置文件只能通过函数访问user.get_profile()?
是否真的需要每次都将配置文件明确传递到模板中?
from django import template
register = template.Library()
@register.filter
def replace(value, cherche, remplacement):
return value.replace(cherche, remplacement)
Run Code Online (Sandbox Code Playgroud)
{{ attr.name|replace:"_"," " }}
{{ attr.name|replace:"_" " " }}
{{ attr.name|replace:"_":" " }}
{{ attr.name|replace:"cherche='_', remplacement=' '" }}
Run Code Online (Sandbox Code Playgroud)
很简单.我有一个Python列表,我将传递给Django模板.
我可以使用专门访问此列表中的第一项
{{ thelist|first }}
Run Code Online (Sandbox Code Playgroud)
但是,我也想访问该项目的属性...理想情况下,您认为它看起来像这样:
{{ thelist|first.propertyName }}
Run Code Online (Sandbox Code Playgroud)
但唉,事实并非如此.
有没有任何模板解决方案,或者我只是发现自己传递一个额外的模板变量...
限制对象的方法之一是为这样的函数添加限制
def ten_objects():
obj = Model.objects.all()[0:10] # limit to 10
return {'objects': obj}
Run Code Online (Sandbox Code Playgroud)
但是,如何在模板内而不是在视图内实现此目的?
我知道你可以过滤模板中的对象并限制字符,但是你如何实际限制循环中显示的对象数量.通过模板.例如,以下代码将遍历所有对象....
<ul>
{% for new in news %}
<li>
<p>{{ news.title }}</p>
<p>{{ news.body }}</p>
</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
我怎么打破循环,比如在第一个3个物品/物品之后.我如何在模板中完成它.提前致谢.
我想看看Django模板中的字段/变量是否为空.这个的正确语法是什么?
这就是我目前拥有的:
{% if profile.user.first_name is null %}
<p> -- </p>
{% elif %}
{{ profile.user.first_name }} {{ profile.user.last_name }}
{% endif%}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我将用什么来代替"null"?