Support keword
This commit is contained in:
45
core/migrations/0002_crawltask.py
Normal file
45
core/migrations/0002_crawltask.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# Generated by Django 5.1 on 2025-09-23 19:28
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('core', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='CrawlTask',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=200, verbose_name='任务名称')),
|
||||
('task_type', models.CharField(choices=[('keyword', '关键词搜索'), ('historical', '历史文章'), ('full_site', '全站爬取')], default='keyword', max_length=20, verbose_name='任务类型')),
|
||||
('keyword', models.CharField(blank=True, max_length=200, null=True, verbose_name='搜索关键词')),
|
||||
('websites', models.JSONField(default=list, verbose_name='目标网站')),
|
||||
('start_date', models.DateField(blank=True, null=True, verbose_name='开始日期')),
|
||||
('end_date', models.DateField(blank=True, null=True, verbose_name='结束日期')),
|
||||
('max_pages', models.IntegerField(default=10, verbose_name='最大页数')),
|
||||
('max_articles', models.IntegerField(default=100, verbose_name='最大文章数')),
|
||||
('status', models.CharField(choices=[('pending', '等待中'), ('running', '运行中'), ('completed', '已完成'), ('failed', '失败'), ('cancelled', '已取消')], default='pending', max_length=20, verbose_name='状态')),
|
||||
('progress', models.IntegerField(default=0, verbose_name='进度百分比')),
|
||||
('current_website', models.CharField(blank=True, max_length=100, null=True, verbose_name='当前网站')),
|
||||
('current_action', models.CharField(blank=True, max_length=200, null=True, verbose_name='当前操作')),
|
||||
('total_articles', models.IntegerField(default=0, verbose_name='总文章数')),
|
||||
('success_count', models.IntegerField(default=0, verbose_name='成功数')),
|
||||
('failed_count', models.IntegerField(default=0, verbose_name='失败数')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('started_at', models.DateTimeField(blank=True, null=True, verbose_name='开始时间')),
|
||||
('completed_at', models.DateTimeField(blank=True, null=True, verbose_name='完成时间')),
|
||||
('error_message', models.TextField(blank=True, null=True, verbose_name='错误信息')),
|
||||
('result_details', models.JSONField(blank=True, default=dict, verbose_name='结果详情')),
|
||||
('created_by', models.CharField(blank=True, max_length=100, null=True, verbose_name='创建者')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': '爬取任务',
|
||||
'verbose_name_plural': '爬取任务',
|
||||
'ordering': ['-created_at'],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 5.1 on 2025-09-23 19:34
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('core', '0002_crawltask'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='crawltask',
|
||||
name='websites',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='crawltask',
|
||||
name='websites',
|
||||
field=models.ManyToManyField(blank=True, to='core.website', verbose_name='目标网站'),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user