O que são filtros de template sobre django?
Filtros é o que há de melhor para aplicação de variáveis sobre o sistema de templates do Django, e abaixo vamos exemplificar a criação de um filtro para uma variável, a 'swf_url', utilizada pela API do Google, para selecionar o link correto do vídeo.
Vamos lá, para começar, crie uma pasta, tipo 'templatetags', no root de seu aplicativo.
Crie um arquivo, vazio mesmo, com o seguinte nome: __init__.py
Crie um arquivo, e dê o seguinte nome: filter_tags.py
Agora adicionamos uma função, que é por onde a variável passará, antes de popular o template.
Código equivalente a uma função do php, sem complicação.
def s_url ( self ):#funcao s_url
"""Retorna a url de video do youtube
"""
#recebe o array da consulta de videos do youtube,ex.:mais vistos...
if self.media.content:
#como o video tem varios formatos, tem q se escolher um formato, neste caso, o 5
for content in self.media.content:
if content.extension_attributes['{http://gdata.youtube.com/schemas/2007}format'] == '5':
#retorna a url do flv
return content.url
else:
return None
Agora a chamada no template:
A imagem do resultado final

Vamos lá, para começar, crie uma pasta, tipo 'templatetags', no root de seu aplicativo.
Crie um arquivo, vazio mesmo, com o seguinte nome: __init__.py
Crie um arquivo, e dê o seguinte nome: filter_tags.py
Agora adicionamos uma função, que é por onde a variável passará, antes de popular o template.
Código equivalente a uma função do php, sem complicação.
def s_url ( self ):#funcao s_url
"""Retorna a url de video do youtube
"""
#recebe o array da consulta de videos do youtube,ex.:mais vistos...
if self.media.content:
#como o video tem varios formatos, tem q se escolher um formato, neste caso, o 5
for content in self.media.content:
if content.extension_attributes['{http://gdata.youtube.com/schemas/2007}format'] == '5':
#retorna a url do flv
return content.url
else:
return None
Agora a chamada no template:
A imagem do resultado final
A imagem está minimizada...
Quaisquer dúvidas, é só comentar.
Quaisquer dúvidas, é só comentar.
anonymous
Comentário