20148e6e0ab3e9897466b60b453ae78525805389
[philo.git] / contrib / penfield / migrations / 0001_initial.py
1 # encoding: utf-8
2 import datetime
3 from south.db import db
4 from south.v2 import SchemaMigration
5 from django.db import models
6 from philo.migrations import person_model, frozen_person
7
8 class Migration(SchemaMigration):
9
10     def forwards(self, orm):
11         
12         # Adding model 'Blog'
13         db.create_table('penfield_blog', (
14             ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
15             ('title', self.gf('django.db.models.fields.CharField')(max_length=255)),
16             ('slug', self.gf('django.db.models.fields.SlugField')(max_length=255, db_index=True)),
17         ))
18         db.send_create_signal('penfield', ['Blog'])
19
20         # Adding model 'BlogEntry'
21         db.create_table('penfield_blogentry', (
22             ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
23             ('title', self.gf('django.db.models.fields.CharField')(max_length=255)),
24             ('slug', self.gf('django.db.models.fields.SlugField')(max_length=255, db_index=True)),
25             ('blog', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='entries', null=True, to=orm['penfield.Blog'])),
26             ('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='blogentries', to=orm[person_model])),
27             ('date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
28             ('content', self.gf('django.db.models.fields.TextField')()),
29             ('excerpt', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
30         ))
31         db.send_create_signal('penfield', ['BlogEntry'])
32
33         # Adding M2M table for field tags on 'BlogEntry'
34         db.create_table('penfield_blogentry_tags', (
35             ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
36             ('blogentry', models.ForeignKey(orm['penfield.blogentry'], null=False)),
37             ('tag', models.ForeignKey(orm['philo.tag'], null=False))
38         ))
39         db.create_unique('penfield_blogentry_tags', ['blogentry_id', 'tag_id'])
40
41         # Adding model 'BlogView'
42         db.create_table('penfield_blogview', (
43             ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
44             ('blog', self.gf('django.db.models.fields.related.ForeignKey')(related_name='blogviews', to=orm['penfield.Blog'])),
45             ('index_page', self.gf('django.db.models.fields.related.ForeignKey')(related_name='blog_index_related', to=orm['philo.Page'])),
46             ('entry_page', self.gf('django.db.models.fields.related.ForeignKey')(related_name='blog_entry_related', to=orm['philo.Page'])),
47             ('entry_archive_page', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='blog_entry_archive_related', null=True, to=orm['philo.Page'])),
48             ('tag_page', self.gf('django.db.models.fields.related.ForeignKey')(related_name='blog_tag_related', to=orm['philo.Page'])),
49             ('tag_archive_page', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='blog_tag_archive_related', null=True, to=orm['philo.Page'])),
50             ('entries_per_page', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)),
51             ('entry_permalink_style', self.gf('django.db.models.fields.CharField')(max_length=1)),
52             ('entry_permalink_base', self.gf('django.db.models.fields.CharField')(default='entries', max_length=255)),
53             ('tag_permalink_base', self.gf('django.db.models.fields.CharField')(default='tags', max_length=255)),
54             ('feed_suffix', self.gf('django.db.models.fields.CharField')(default='feed', max_length=255)),
55             ('feeds_enabled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
56         ))
57         db.send_create_signal('penfield', ['BlogView'])
58
59         # Adding model 'Newsletter'
60         db.create_table('penfield_newsletter', (
61             ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
62             ('title', self.gf('django.db.models.fields.CharField')(max_length=255)),
63             ('slug', self.gf('django.db.models.fields.SlugField')(max_length=255, db_index=True)),
64         ))
65         db.send_create_signal('penfield', ['Newsletter'])
66
67         # Adding model 'NewsletterArticle'
68         db.create_table('penfield_newsletterarticle', (
69             ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
70             ('title', self.gf('django.db.models.fields.CharField')(max_length=255)),
71             ('slug', self.gf('django.db.models.fields.SlugField')(max_length=255, db_index=True)),
72             ('newsletter', self.gf('django.db.models.fields.related.ForeignKey')(related_name='articles', to=orm['penfield.Newsletter'])),
73             ('date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
74             ('lede', self.gf('philo.models.fields.TemplateField')(null=True, blank=True)),
75             ('full_text', self.gf('philo.models.fields.TemplateField')()),
76         ))
77         db.send_create_signal('penfield', ['NewsletterArticle'])
78
79         # Adding unique constraint on 'NewsletterArticle', fields ['newsletter', 'slug']
80         db.create_unique('penfield_newsletterarticle', ['newsletter_id', 'slug'])
81
82         # Adding M2M table for field authors on 'NewsletterArticle'
83         db.create_table('penfield_newsletterarticle_authors', (
84             ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
85             ('newsletterarticle', models.ForeignKey(orm['penfield.newsletterarticle'], null=False)),
86             ('person', models.ForeignKey(orm[person_model], null=False))
87         ))
88         db.create_unique('penfield_newsletterarticle_authors', ['newsletterarticle_id', 'person_id'])
89
90         # Adding M2M table for field tags on 'NewsletterArticle'
91         db.create_table('penfield_newsletterarticle_tags', (
92             ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
93             ('newsletterarticle', models.ForeignKey(orm['penfield.newsletterarticle'], null=False)),
94             ('tag', models.ForeignKey(orm['philo.tag'], null=False))
95         ))
96         db.create_unique('penfield_newsletterarticle_tags', ['newsletterarticle_id', 'tag_id'])
97
98         # Adding model 'NewsletterIssue'
99         db.create_table('penfield_newsletterissue', (
100             ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
101             ('title', self.gf('django.db.models.fields.CharField')(max_length=255)),
102             ('slug', self.gf('django.db.models.fields.SlugField')(max_length=255, db_index=True)),
103             ('newsletter', self.gf('django.db.models.fields.related.ForeignKey')(related_name='issues', to=orm['penfield.Newsletter'])),
104             ('numbering', self.gf('django.db.models.fields.CharField')(max_length=50)),
105         ))
106         db.send_create_signal('penfield', ['NewsletterIssue'])
107
108         # Adding unique constraint on 'NewsletterIssue', fields ['newsletter', 'numbering']
109         db.create_unique('penfield_newsletterissue', ['newsletter_id', 'numbering'])
110
111         # Adding M2M table for field articles on 'NewsletterIssue'
112         db.create_table('penfield_newsletterissue_articles', (
113             ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
114             ('newsletterissue', models.ForeignKey(orm['penfield.newsletterissue'], null=False)),
115             ('newsletterarticle', models.ForeignKey(orm['penfield.newsletterarticle'], null=False))
116         ))
117         db.create_unique('penfield_newsletterissue_articles', ['newsletterissue_id', 'newsletterarticle_id'])
118
119         # Adding model 'NewsletterView'
120         db.create_table('penfield_newsletterview', (
121             ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
122             ('newsletter', self.gf('django.db.models.fields.related.ForeignKey')(related_name='newsletterviews', to=orm['penfield.Newsletter'])),
123             ('index_page', self.gf('django.db.models.fields.related.ForeignKey')(related_name='newsletter_index_related', to=orm['philo.Page'])),
124             ('article_page', self.gf('django.db.models.fields.related.ForeignKey')(related_name='newsletter_article_related', to=orm['philo.Page'])),
125             ('article_archive_page', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='newsletter_article_archive_related', null=True, to=orm['philo.Page'])),
126             ('issue_page', self.gf('django.db.models.fields.related.ForeignKey')(related_name='newsletter_issue_related', to=orm['philo.Page'])),
127             ('issue_archive_page', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='newsletter_issue_archive_related', null=True, to=orm['philo.Page'])),
128             ('article_permalink_style', self.gf('django.db.models.fields.CharField')(max_length=1)),
129             ('article_permalink_base', self.gf('django.db.models.fields.CharField')(default='articles', max_length=255)),
130             ('issue_permalink_base', self.gf('django.db.models.fields.CharField')(default='issues', max_length=255)),
131             ('feed_suffix', self.gf('django.db.models.fields.CharField')(default='feed', max_length=255)),
132             ('feeds_enabled', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
133         ))
134         db.send_create_signal('penfield', ['NewsletterView'])
135
136
137     def backwards(self, orm):
138         
139         # Deleting model 'Blog'
140         db.delete_table('penfield_blog')
141
142         # Deleting model 'BlogEntry'
143         db.delete_table('penfield_blogentry')
144
145         # Removing M2M table for field tags on 'BlogEntry'
146         db.delete_table('penfield_blogentry_tags')
147
148         # Deleting model 'BlogView'
149         db.delete_table('penfield_blogview')
150
151         # Deleting model 'Newsletter'
152         db.delete_table('penfield_newsletter')
153
154         # Deleting model 'NewsletterArticle'
155         db.delete_table('penfield_newsletterarticle')
156
157         # Removing unique constraint on 'NewsletterArticle', fields ['newsletter', 'slug']
158         db.delete_unique('penfield_newsletterarticle', ['newsletter_id', 'slug'])
159
160         # Removing M2M table for field authors on 'NewsletterArticle'
161         db.delete_table('penfield_newsletterarticle_authors')
162
163         # Removing M2M table for field tags on 'NewsletterArticle'
164         db.delete_table('penfield_newsletterarticle_tags')
165
166         # Deleting model 'NewsletterIssue'
167         db.delete_table('penfield_newsletterissue')
168
169         # Removing unique constraint on 'NewsletterIssue', fields ['newsletter', 'numbering']
170         db.delete_unique('penfield_newsletterissue', ['newsletter_id', 'numbering'])
171
172         # Removing M2M table for field articles on 'NewsletterIssue'
173         db.delete_table('penfield_newsletterissue_articles')
174
175         # Deleting model 'NewsletterView'
176         db.delete_table('penfield_newsletterview')
177
178
179     models = {
180         'auth.group': {
181             'Meta': {'object_name': 'Group'},
182             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
183             'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
184             'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
185         },
186         'auth.permission': {
187             'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
188             'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
189             'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
190             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
191             'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
192         },
193         'auth.user': {
194             'Meta': {'object_name': 'User'},
195             'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
196             'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
197             'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
198             'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
199             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
200             'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
201             'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
202             'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
203             'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
204             'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
205             'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
206             'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
207             'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
208         },
209         'contenttypes.contenttype': {
210             'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
211             'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
212             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
213             'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
214             'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
215         },
216         person_model: frozen_person,
217         'penfield.blog': {
218             'Meta': {'object_name': 'Blog'},
219             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
220             'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'}),
221             'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
222         },
223         'penfield.blogentry': {
224             'Meta': {'object_name': 'BlogEntry'},
225             'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blogentries'", 'to': "orm['%s']" % person_model}),
226             'blog': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'entries'", 'null': 'True', 'to': "orm['penfield.Blog']"}),
227             'content': ('django.db.models.fields.TextField', [], {}),
228             'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
229             'excerpt': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
230             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
231             'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'}),
232             'tags': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'blogentries'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['philo.Tag']"}),
233             'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
234         },
235         'penfield.blogview': {
236             'Meta': {'object_name': 'BlogView'},
237             'blog': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blogviews'", 'to': "orm['penfield.Blog']"}),
238             'entries_per_page': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
239             'entry_archive_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_entry_archive_related'", 'null': 'True', 'to': "orm['philo.Page']"}),
240             'entry_page': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blog_entry_related'", 'to': "orm['philo.Page']"}),
241             'entry_permalink_base': ('django.db.models.fields.CharField', [], {'default': "'entries'", 'max_length': '255'}),
242             'entry_permalink_style': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
243             'feed_suffix': ('django.db.models.fields.CharField', [], {'default': "'feed'", 'max_length': '255'}),
244             'feeds_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
245             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
246             'index_page': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blog_index_related'", 'to': "orm['philo.Page']"}),
247             'tag_archive_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_tag_archive_related'", 'null': 'True', 'to': "orm['philo.Page']"}),
248             'tag_page': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blog_tag_related'", 'to': "orm['philo.Page']"}),
249             'tag_permalink_base': ('django.db.models.fields.CharField', [], {'default': "'tags'", 'max_length': '255'})
250         },
251         'penfield.newsletter': {
252             'Meta': {'object_name': 'Newsletter'},
253             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
254             'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'}),
255             'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
256         },
257         'penfield.newsletterarticle': {
258             'Meta': {'unique_together': "(('newsletter', 'slug'),)", 'object_name': 'NewsletterArticle'},
259             'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'newsletterarticles'", 'symmetrical': 'False', 'to': "orm['%s']" % person_model}),
260             'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
261             'full_text': ('philo.models.fields.TemplateField', [], {}),
262             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
263             'lede': ('philo.models.fields.TemplateField', [], {'null': 'True', 'blank': 'True'}),
264             'newsletter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'articles'", 'to': "orm['penfield.Newsletter']"}),
265             'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'}),
266             'tags': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'newsletterarticles'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['philo.Tag']"}),
267             'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
268         },
269         'penfield.newsletterissue': {
270             'Meta': {'unique_together': "(('newsletter', 'numbering'),)", 'object_name': 'NewsletterIssue'},
271             'articles': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'issues'", 'symmetrical': 'False', 'to': "orm['penfield.NewsletterArticle']"}),
272             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
273             'newsletter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'issues'", 'to': "orm['penfield.Newsletter']"}),
274             'numbering': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
275             'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'}),
276             'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
277         },
278         'penfield.newsletterview': {
279             'Meta': {'object_name': 'NewsletterView'},
280             'article_archive_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'newsletter_article_archive_related'", 'null': 'True', 'to': "orm['philo.Page']"}),
281             'article_page': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsletter_article_related'", 'to': "orm['philo.Page']"}),
282             'article_permalink_base': ('django.db.models.fields.CharField', [], {'default': "'articles'", 'max_length': '255'}),
283             'article_permalink_style': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
284             'feed_suffix': ('django.db.models.fields.CharField', [], {'default': "'feed'", 'max_length': '255'}),
285             'feeds_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
286             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
287             'index_page': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsletter_index_related'", 'to': "orm['philo.Page']"}),
288             'issue_archive_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'newsletter_issue_archive_related'", 'null': 'True', 'to': "orm['philo.Page']"}),
289             'issue_page': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsletter_issue_related'", 'to': "orm['philo.Page']"}),
290             'issue_permalink_base': ('django.db.models.fields.CharField', [], {'default': "'issues'", 'max_length': '255'}),
291             'newsletter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'newsletterviews'", 'to': "orm['penfield.Newsletter']"})
292         },
293         'philo.attribute': {
294             'Meta': {'unique_together': "(('key', 'entity_content_type', 'entity_object_id'),)", 'object_name': 'Attribute'},
295             'entity_content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
296             'entity_object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
297             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
298             'json_value': ('django.db.models.fields.TextField', [], {}),
299             'key': ('django.db.models.fields.CharField', [], {'max_length': '255'})
300         },
301         'philo.node': {
302             'Meta': {'object_name': 'Node'},
303             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
304             'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['philo.Node']"}),
305             'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'}),
306             'view_content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'node_view_set'", 'to': "orm['contenttypes.ContentType']"}),
307             'view_object_id': ('django.db.models.fields.PositiveIntegerField', [], {})
308         },
309         'philo.page': {
310             'Meta': {'object_name': 'Page'},
311             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
312             'template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pages'", 'to': "orm['philo.Template']"}),
313             'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
314         },
315         'philo.relationship': {
316             'Meta': {'unique_together': "(('key', 'entity_content_type', 'entity_object_id'),)", 'object_name': 'Relationship'},
317             'entity_content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'relationship_entity_set'", 'to': "orm['contenttypes.ContentType']"}),
318             'entity_object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
319             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
320             'key': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
321             'value_content_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'relationship_value_set'", 'null': 'True', 'to': "orm['contenttypes.ContentType']"}),
322             'value_object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'})
323         },
324         'philo.tag': {
325             'Meta': {'object_name': 'Tag'},
326             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
327             'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
328             'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
329         },
330         'philo.template': {
331             'Meta': {'object_name': 'Template'},
332             'code': ('philo.models.fields.TemplateField', [], {}),
333             'documentation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
334             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
335             'mimetype': ('django.db.models.fields.CharField', [], {'default': "'text/html'", 'max_length': '255'}),
336             'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
337             'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['philo.Template']"}),
338             'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'db_index': 'True'})
339         }
340     }
341
342     complete_apps = ['penfield']