Initial commit: Django gallery project

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-25 16:47:17 +08:00
commit 8b57a7b66a
53 changed files with 3633 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
# Generated by Django 4.2.0 on 2026-02-05 10:39
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='About',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200, verbose_name='标题')),
('content', models.TextField(verbose_name='内容')),
('image', models.ImageField(blank=True, null=True, upload_to='about/', verbose_name='图片')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '关于页面',
'verbose_name_plural': '关于页面',
},
),
migrations.CreateModel(
name='Category',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=100, verbose_name='分类名称')),
('slug', models.SlugField(blank=True, max_length=100, unique=True, verbose_name='URL标识')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
],
options={
'verbose_name': '作品分类',
'verbose_name_plural': '作品分类',
'ordering': ['name'],
},
),
migrations.CreateModel(
name='Artwork',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200, verbose_name='作品标题')),
('description', models.TextField(blank=True, verbose_name='作品描述')),
('slug', models.SlugField(blank=True, max_length=200, unique=True, verbose_name='URL标识')),
('image', models.ImageField(upload_to='artworks/%Y/%m/%d/', verbose_name='作品图片')),
('thumbnail', models.ImageField(blank=True, null=True, upload_to='thumbnails/%Y/%m/%d/', verbose_name='缩略图')),
('order', models.IntegerField(default=0, help_text='数字越小越靠前', verbose_name='排序序号')),
('grid_size', models.CharField(choices=[('small', '小 (1x1)'), ('medium', '中 (2x2)'), ('large', '大 (3x3)')], default='medium', help_text='控制首页展示的大小', max_length=10, verbose_name='网格尺寸')),
('created_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('view_count', models.PositiveIntegerField(default=0, verbose_name='浏览次数')),
('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='gallery.category', verbose_name='作品分类')),
],
options={
'verbose_name': '摄影作品',
'verbose_name_plural': '摄影作品',
'ordering': ['order', '-created_at'],
},
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 4.2 on 2026-02-05 04:45
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('gallery', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='artwork',
name='grid_size',
),
]

View File

@@ -0,0 +1,73 @@
# Generated by Django 4.2 on 2026-02-16 15:43
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
("gallery", "0002_remove_grid_size"),
]
operations = [
migrations.CreateModel(
name="Comment",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("text", models.TextField(blank=True, verbose_name="评论内容")),
(
"image",
models.ImageField(
blank=True,
null=True,
upload_to="comments/%Y/%m/%d/",
verbose_name="评论图片",
),
),
(
"created_at",
models.DateTimeField(auto_now_add=True, verbose_name="创建时间"),
),
(
"updated_at",
models.DateTimeField(auto_now=True, verbose_name="更新时间"),
),
(
"is_active",
models.BooleanField(default=True, verbose_name="是否有效"),
),
(
"artwork",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="gallery.artwork",
verbose_name="作品",
),
),
(
"user",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to=settings.AUTH_USER_MODEL,
verbose_name="用户",
),
),
],
options={
"verbose_name": "评论",
"verbose_name_plural": "评论",
"ordering": ["-created_at"],
},
),
]

View File