O models:
Baseado no modelo acima, podemos observar que a class Modulos já carrega automaticamente os SubModulos, então quando vamos gerar o nosso RDF basta passar a class Modulos como parâmetro e fazer o seguinte no nosso template Cheetah:class Modulos( models.Model):
nome = models.CharField(maxlength=50)
descricao = models.CharField(maxlength=2048)
def __str__(self):
return self.nome
class SubModulos(models.Model):
modulo = models.ForeignKey(Modulos, related_name='sub_set')
nome = models.CharField(maxlength=50)
descricao = models.CharField(maxlength=2048)
def __str__(self):
return self.nome
Observe que o processamento fica a cargo do Cheetah, usando dois #for, um para ler os itens do Modulo e o outro para pegar todos os SubModulos.<?xml version="1.0" encoding="ISO-8859-1"?>
#from modulos.start.models import Modulos, SubModulos
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:TABELA=" http://www.algoritmoweb.com.br/rdf#">
<RDF:Bag RDF:about="urn:tabela">
#for $item in $list
#set $m = $Modulos.objects.get(pk=$item.id)
#set $s = $m.sub_set.all()
#for $sub in $s
<RDF:li>
<RDF:Description>
<TABELA:id>$!sub.id</TABELA:id>
<TABELA:nome>$!sub.nome</TABELA:nome>
<TABELA:idModulo>$!m.id</TABELA:idModulo>
<TABELA:moduloNome>$!m.nome</TABELA:moduloNome>
<TABELA:descricao>$!sub.descricao</TABELA:descricao>
</RDF:Description>
</RDF:li>
#end for
#end for
</RDF:Bag>
</RDF:RDF>
Espero ter ajudado.
Orlando Cesar
Nenhum comentário:
Postar um comentário