Self-hostable blog for developers built on Wagtail and Django, with webpack, Bootstrap, and CodeMirror.
blogbootstrapdjangodockerhandcodedpythonself-hostedwagtailwebpack
1# Generated by Django 4.0.5 on 2022-06-11 02:37
2
3from django.db import migrations, models
4import django.db.models.deletion
5import modelcluster.contrib.taggit
6import modelcluster.fields
7import wagtail.blocks
8import wagtail.contrib.routable_page.models
9import wagtail.embeds.blocks
10import wagtail.fields
11import wagtail.images.blocks
12
13
14class Migration(migrations.Migration):
15
16 initial = True
17
18 dependencies = [
19 ('wagtailcore', '0069_log_entry_jsonfield'),
20 ('taggit', '0004_alter_taggeditem_content_type_alter_taggeditem_tag'),
21 ]
22
23 operations = [
24 migrations.CreateModel(
25 name='BlogIndexPage',
26 fields=[
27 ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
28 ('body', wagtail.fields.StreamField([('rich_text', wagtail.blocks.RichTextBlock()), ('image', wagtail.images.blocks.ImageChooserBlock()), ('code', wagtail.blocks.StructBlock([('language', wagtail.blocks.ChoiceBlock(choices=[('python', 'Python'), ('javascript', 'Javascript'), ('htmlmixed', 'HTML'), ('css', 'CSS'), ('shell', 'Shell')])), ('text', wagtail.blocks.TextBlock())])), ('embed', wagtail.embeds.blocks.EmbedBlock())], use_json_field=True)),
29 ],
30 options={
31 'verbose_name': 'Blog Index Page',
32 'verbose_name_plural': 'Blog Index Pages',
33 },
34 bases=(wagtail.contrib.routable_page.models.RoutablePageMixin, 'wagtailcore.page'),
35 ),
36 migrations.CreateModel(
37 name='BlogPostPage',
38 fields=[
39 ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
40 ('body', wagtail.fields.StreamField([('rich_text', wagtail.blocks.RichTextBlock()), ('image', wagtail.images.blocks.ImageChooserBlock()), ('code', wagtail.blocks.StructBlock([('language', wagtail.blocks.ChoiceBlock(choices=[('python', 'Python'), ('javascript', 'Javascript'), ('htmlmixed', 'HTML'), ('css', 'CSS'), ('shell', 'Shell')])), ('text', wagtail.blocks.TextBlock())])), ('embed', wagtail.embeds.blocks.EmbedBlock())], use_json_field=True)),
41 ],
42 options={
43 'verbose_name': 'Blog Page',
44 'verbose_name_plural': 'Blog Pages',
45 'ordering': ['-first_published_at'],
46 },
47 bases=('wagtailcore.page',),
48 ),
49 migrations.CreateModel(
50 name='HomePage',
51 fields=[
52 ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
53 ('body', wagtail.fields.StreamField([('rich_text', wagtail.blocks.RichTextBlock()), ('image', wagtail.images.blocks.ImageChooserBlock()), ('code', wagtail.blocks.StructBlock([('language', wagtail.blocks.ChoiceBlock(choices=[('python', 'Python'), ('javascript', 'Javascript'), ('htmlmixed', 'HTML'), ('css', 'CSS'), ('shell', 'Shell')])), ('text', wagtail.blocks.TextBlock())])), ('embed', wagtail.embeds.blocks.EmbedBlock())], use_json_field=True)),
54 ],
55 options={
56 'verbose_name': 'Home Page',
57 'verbose_name_plural': 'Home Pages',
58 },
59 bases=('wagtailcore.page',),
60 ),
61 migrations.CreateModel(
62 name='BlogPostPageTags',
63 fields=[
64 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
65 ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='pages.blogpostpage')),
66 ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='taggit.tag')),
67 ],
68 options={
69 'abstract': False,
70 },
71 ),
72 migrations.AddField(
73 model_name='blogpostpage',
74 name='tags',
75 field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='pages.BlogPostPageTags', to='taggit.Tag', verbose_name='Tags'),
76 ),
77 ]