1
我目前正致力於製作一個Python代碼生成器來快速模擬django項目。jinja2在字典中訪問嵌套列表
我有一個xml文件,其中包含所有的模型數據。從那裏它將消失並用jinja2模擬模型,通用視圖,模板等。
我很努力地讓忍者訪問嵌套列表裏面的字典。
code_gen.py
models = {}
tree = ET.parse('models.xml')
root = tree.getroot()
for child in root:
models[child.tag] = []
for c in child:
models[child.tag].append(c.tag)
print models
t = Template("""from django.db import models
{% for class in model %}
class {{ class }}(models.Model):
{% for occurrence in occurrences %}{{ occurrence }}{% endfor %}
{% endfor %}
""")
i = t.render(model=models)
fo = open('test.py', 'wb')
fo.write(i)
fo.close()
models.xml
<?xml version="1.0" encoding="UTF-8"?>
<Models>
<Model1>
<CharField max_length="10" null="True" blank="True">Firstname</CharField>
<IntegerFieldnull null="True" blank="True">age</IntegerField>
</Model1>
<Model2>
<EmailField max_length="10" null="True" blank="True">email</EmailField>
<DateField null="True" blank="True">DOB</DateField>
</Model2>
</Models>
如果我打印出來的模型,我得到:
{'Model2': ['EmailField', 'DateField'], 'Model1': ['CharField', 'IntegerField']}
當我把它添加到模板中我得到的類名字,但沒有一個領域。
完美謝謝 – Mantis