# 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')], }, ), ]