You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
3.0 KiB
53 lines
3.0 KiB
# Generated by Django 3.2.4 on 2025-09-10 20:47
|
|
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Blog',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('title', models.JSONField(blank=True, default=list, null=True, verbose_name='title')),
|
|
('thumbnail', models.ImageField(help_text='Blog thumbnail image', upload_to='blog/thumbnails/%Y/%m/', verbose_name='Thumbnail')),
|
|
('slogan', models.JSONField(blank=True, default=list, null=True, verbose_name='slogan')),
|
|
('summary', models.JSONField(blank=True, default=list, null=True, verbose_name='summary')),
|
|
('views_count', models.PositiveIntegerField(default=0, help_text='Number of times this blog was viewed', verbose_name='Views Count')),
|
|
('slug', models.JSONField(blank=True, default=list, help_text='URL slug for the blog', null=True, verbose_name='slug')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Blog',
|
|
'verbose_name_plural': 'Blogs',
|
|
'ordering': ['-created_at'],
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='BlogContent',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('title', models.JSONField(blank=True, default=list, help_text='Title of this content section', null=True, verbose_name='Content title')),
|
|
('content', models.JSONField(blank=True, default=list, help_text='The main content text', null=True, verbose_name='content')),
|
|
('slug', models.JSONField(blank=True, default=list, help_text='URL slug for this content (optional)', null=True, verbose_name='slug')),
|
|
('image', models.ImageField(blank=True, help_text='Optional image for this content section', null=True, upload_to='blog/content_images/%Y/%m/', verbose_name='Image')),
|
|
('order', models.PositiveIntegerField(default=0, help_text='Order of this content within the blog', verbose_name='Order')),
|
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')),
|
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Updated At')),
|
|
('blog', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contents', to='blog.blog', verbose_name='Blog')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Blog Content',
|
|
'verbose_name_plural': 'Blog Contents',
|
|
'ordering': ['order', 'created_at'],
|
|
},
|
|
),
|
|
]
|