Base setup
This commit is contained in:
35
crawler/migrations/0003_mediafile.py
Normal file
35
crawler/migrations/0003_mediafile.py
Normal file
@@ -0,0 +1,35 @@
|
||||
# Generated by Django 5.2.6 on 2025-09-23 01:05
|
||||
|
||||
import crawler.models
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('crawler', '0002_crawledcontent_is_local_saved_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='MediaFile',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('media_type', models.CharField(choices=[('image', '图片'), ('video', '视频'), ('audio', '音频'), ('document', '文档')], max_length=20, verbose_name='媒体类型')),
|
||||
('original_url', models.URLField(verbose_name='原始URL')),
|
||||
('local_file', models.FileField(upload_to=crawler.models.media_file_path, verbose_name='本地文件')),
|
||||
('file_size', models.BigIntegerField(blank=True, null=True, verbose_name='文件大小(字节)')),
|
||||
('mime_type', models.CharField(blank=True, max_length=100, verbose_name='MIME类型')),
|
||||
('alt_text', models.CharField(blank=True, max_length=500, verbose_name='替代文本')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('content', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='media_files', to='crawler.crawledcontent', verbose_name='所属内容')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '媒体文件',
|
||||
'verbose_name_plural': '媒体文件',
|
||||
'ordering': ['-created_at'],
|
||||
'indexes': [models.Index(fields=['content', 'media_type'], name='crawler_med_content_3a9468_idx'), models.Index(fields=['created_at'], name='crawler_med_created_13ff00_idx')],
|
||||
},
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user