mod: модели и админка (19) посты в блогах могут иметь связь с SVG-генерацией и возможен "куст" постов (идин пост-родитель и много потомков (для формирования многостраничной документации и т.п.)

This commit is contained in:
2026-09-07 23:22:06 +03:00
parent b868fc4359
commit 46a2e57b0c
4 changed files with 260 additions and 7 deletions
@@ -0,0 +1,37 @@
# Generated by Django 6.1 on 2026-09-07 20:17
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('hypn0_site', '0004_alter_tbhypn0item_file_svg'),
]
operations = [
migrations.AlterModelOptions(
name='tbblogpost',
options={'ordering': ['-d_published_at', 'i_order', '-d_created_at'], 'verbose_name': 'Статья блога / Страница', 'verbose_name_plural': 'Статьи блога / Страницы'},
),
migrations.AddField(
model_name='tbblogpost',
name='i_order',
field=models.PositiveSmallIntegerField(db_index=True, default=0, help_text='Порядковый номер для сортировки внутри родительского поста (0, 1, 2...)', verbose_name='Порядок в серии'),
),
migrations.AddField(
model_name='tbblogpost',
name='k_item',
field=models.ForeignKey(blank=True, help_text='Опциональная генерация, вокруг которой строится пост или туториал', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='blog_posts', to='hypn0_site.tbhypn0item', verbose_name='Связанная SVG-картина'),
),
migrations.AddField(
model_name='tbblogpost',
name='k_parent_post',
field=models.ForeignKey(blank=True, help_text='Если заполнен — пост является частью серии или подборки', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='child_posts', to='hypn0_site.tbblogpost', verbose_name='Родительский пост / Серия'),
),
migrations.AddIndex(
model_name='tbblogpost',
index=models.Index(fields=['k_item', 'is_published', '-d_published_at'], name='idx_blog_item_pub'),
),
]