Как включить метод в шаблоне google-app-engine - PullRequest
1 голос
/ 16 мая 2010

метод:

def printa(x):
    return x

ответ:

self.response.out.write(template.render(path, {'printa':printa}))

HTML это:

{{ printa 'sss'}}

Я хочу показать 'sss' на своей странице,

так как это сделать,

обновлен

Я создаю папку templatetags и файл 2 py:

templatetags 
     |--------__init__.py
     |--------tags.py

в tags.py это:

#from django import template
from google.appengine.ext.webapp import template

register = template.Library()

def printa():
    return 'ssss'
register.simple_tag(printa)

HTML-код:

{% load tags%}
{% printa %}

но это показывает ошибку, а ошибка:

TemplateSyntaxError: 'tags' is not a valid tag library: Could not load template library from django.templatetags.tags, No module named tags

почему

что не так?

ответ:

tags.py:

from google.appengine.ext import webapp
register = webapp.template.create_template_register()

@register.filter
def printa(value,y):
return 'url:%s' % y

@register.tag
def printb(x,y):
return str(x.__dict__) +'dddddddddddddddddddddddddddddddd'+ str(y.__dict__)
#return x
#register.tag('printb',do_pagednav)

, а затем в html (переменная, которую я посылаю в шаблон):

{{a|printa:"dwqdq"}}

{% printb %}

woring:

не использовать нагрузку:

{% load sometags %}

1 Ответ

1 голос
/ 16 мая 2010

Используя стандартную систему шаблонов веб-приложений (которая на самом деле является Django 0.96), вы не можете этого сделать. Ожидается, что вы поместите логику программы в файлы программы, а не в шаблоны, поэтому вы не можете передавать аргументы своим переменным.

Вы не говорите, что на самом деле пытаетесь сделать; Я предполагаю, что вы не хотите буквально что-то печатать, так как вы можете просто поместить это что-то в шаблон без функции, и он напечатает. Для всего, что вы на самом деле пытаетесь сделать, регистрация пользовательского фильтра может быть тем, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...