我想在django模板中使用python生成器,是否可能?
例如,我有模型,它包含生成器对象,如下所示,
class TestMe(models.Model):
@property
def gen(self):
yield 1
yield 2
context [' gen'] = gen
然后在模板中,
{{ gen }} # it should be print 1
{{ gen }} # it should be print 2
不使用for循环
我试过这种方式,但它返回的python生成器不是1.任何人都对此有所了解。
答案 0 :(得分:1)
生成器返回一个iterable,因此你可以遍历它。
在Python中:
for value in context.gen:
print(value)
或者在Django模板中:
{% for value in context.gen %}
{{ value }}
{% endfor %}
答案 1 :(得分:1)
在模板中
{{ gen.next }}
{{ gen.next }}
答案 2 :(得分:1)
我使用过自定义过滤器
{{ gen|dj_iter }}
在django模板中,我使用了过滤器
void main(string[] args) {
if( args[1] == "-d" ) {
namedPipe = createNamedPipe("mydaemon");
startThread( doStuff );
while( ReadCommandsFromNamedPipe( out command ) ) {
ExecuteCommand( command );
}
}
else {
namedPipe = connectToExistingNamedPipe("mydaemon");
if( namedPipe == null ) die("Daemon is not running");
while( PromptUserForCommandFromStdIn( out cmd ) ) {
sendCommandDownNamedPipe( cmd );
readResponseFromNamedPipe();
}
}
}