8 from django.template import Context, Template
13 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
14 from django.db.models.fields.related import ForeignKey
15 from core.models import *
22 if type(c)==type(PlCoreBase):
23 model_classes.append(c)
29 return str(self.model.__name__.lower())
31 def __init__(self, m):
38 if (name.endswith('s')):
44 name = str(self.model.__name__)
47 class Generator(dict):
52 filtered = filter(lambda o:re.match(r,str(o)), self.values())
55 def add_object(self, o):
57 fields = o._meta.fields
58 self[str(obj).lower()]=obj
60 def compute_links(self):
61 for obj in self.values():
62 fields = obj.model._meta.fields
64 if type(f)==ForeignKey and f.name in self.keys():
66 obj.refs.append(refobj)
68 obj.props.append(f.name)
74 print 'Usage: modelgen <output template>'
77 generator = Generator()
79 models = enum_classes()
82 generator.add_object(m)
84 generator.compute_links()
85 template_contents = open(output).read()
86 template = Template(template_contents)
87 context = Context({'generator':generator})
88 print template.render(context)
91 if (__name__=='__main__'):