class Migration(migrations.Migration): dependencies = [ ('users', '0002_customuser_subscription'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('contests', '0010_mymoskvichiselect_access'), ] operations = [ migrations.AlterField( model_name='artakiada', name='year_contest', field=models.CharField(default='2021-2022 год', max_length=20, verbose_name='Год проведения'), ), migrations.AlterField( model_name='mymoskvichi', name='year_contest', field=models.CharField(default='2021-2022 год', max_length=20, verbose_name='Год проведения'), ), migrations.AlterField( model_name='nrusheva', name='year_contest', field=models.CharField(default='2021-2022 год', max_length=20, verbose_name='Год проведения'), ), migrations.CreateModel( name='Archive', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('reg_number', models.CharField(max_length=20, unique=True, verbose_name='Регистрационный номер')), ('barcode', models.CharField(max_length=15, verbose_name='Штрих-код')), ('fio', models.CharField(max_length=300, verbose_name='Участник')), ('fio_teacher', models.CharField(max_length=300, verbose_name='Педагог')), ('school', models.CharField(max_length=150, verbose_name='Образовательная организация')), ('city', models.CharField(blank=True, max_length=101, verbose_name='Город')), ('date_reg', models.DateTimeField(auto_now=True)), ('contest', models.CharField(max_length=200, verbose_name='Конкурс')), ('year_contest', models.CharField(max_length=20, verbose_name='Год проведения')), ('image', models.ImageField(blank=True, max_length=200, null=True, upload_to=contests.models.PathAndRename('all_contests/'), verbose_name='Изображение')), ('author_name', models.CharField(blank=True, max_length=50, null=True, verbose_name='Авторское название')), ('format', models.CharField(blank=True, choices=[('A1', 'A1'), ('A2', 'A2'), ('A3', 'A3')], max_length=2, null=True, verbose_name='Формат работы')), ('description', models.TextField(blank=True, max_length=500, null=True, verbose_name='Аннотация')), ('program', models.CharField(blank=True, max_length=100, null=True, verbose_name='Программа(ы), в которой выполнена работа')), ('link', models.CharField(blank=True, max_length=200, null=True, verbose_name='Ссылка на файл (облако)')), ('Participants', models.CharField(blank=True, max_length=500, null=True, verbose_name='Участники')), ('TeacherExtra', models.CharField(blank=True, max_length=300, null=True, verbose_name='Педагоги доп.')), ('age', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.age', verbose_name='Возраст')), ('district', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='users.district', verbose_name='Округ')), ('level', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.level', verbose_name='Класс')), ('material', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.material', verbose_name='Материал')), ('nomination', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.nomination', verbose_name='Номинация')), ('region', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='users.region', verbose_name='Регион')), ('status', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='contests.status', verbose_name='Статус')), ('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('theme', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.themeart', verbose_name='Тема')), ], options={ 'abstract': False, }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('users', '__first__'), ] operations = [ migrations.CreateModel( name='Age', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=10, verbose_name='Возраст')), ], options={ 'verbose_name': 'Возраст', 'verbose_name_plural': 'Возраст', }, ), migrations.CreateModel( name='Level', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=10, verbose_name='Класс')), ], options={ 'verbose_name': 'Класс', 'verbose_name_plural': 'Класс', }, ), migrations.CreateModel( name='Material', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, verbose_name='Материал')), ], options={ 'verbose_name': 'Материал', 'verbose_name_plural': 'Материал', }, ), migrations.CreateModel( name='Message', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(blank=True, max_length=100, verbose_name='Заголовок')), ('content', ckeditor.fields.RichTextField(verbose_name='Контент')), ], options={ 'verbose_name': 'Сообщение', 'verbose_name_plural': 'Сообщения', }, ), migrations.CreateModel( name='Mymoskvichi', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('reg_number', models.CharField(max_length=20, unique=True, verbose_name='Регистрационный номер')), ('barcode', models.CharField(max_length=15, verbose_name='Штрих-код')), ('fio', models.CharField(max_length=300, verbose_name='Участник')), ('fio_teacher', models.CharField(max_length=300, verbose_name='Педагог')), ('school', models.CharField(max_length=150, verbose_name='Образовательная организация')), ('city', models.CharField(blank=True, max_length=101, verbose_name='Город')), ('year_contest', models.CharField(default='2020-2021 год', max_length=20, verbose_name='Год проведения')), ('date_reg', models.DateTimeField(auto_now=True)), ('nomination', models.CharField(max_length=50, verbose_name='Номинация')), ('nomination_extra', models.CharField(max_length=50, verbose_name='Доп.номинация')), ('author_name', models.CharField(max_length=50, verbose_name='Авторское название')), ('program', models.CharField( max_length=100, null=True, verbose_name='Программа(ы), в которой выполнена работа')), ('age', models.CharField(max_length=50, null=True, verbose_name='Возрастная категория')), ('link', models.CharField(blank=True, max_length=200, null=True, verbose_name='Ссылка на файл (облако)')), ('district', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='users.district', verbose_name='Округ')), ('region', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='users.region', verbose_name='Регион')), ], options={ 'verbose_name': 'Конкурс Мы Москвичи (участники)', 'verbose_name_plural': 'Конкурс Мы Москвичи (участники)', }, ), migrations.CreateModel( name='MymoskvichiSelect', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('field', models.CharField(choices=[('nomination', 'Номинация'), ('age', 'Возраст'), ('theme', 'Тема')], max_length=20, verbose_name='Название поля')), ('data', models.CharField(max_length=255, verbose_name='Данные')), ], options={ 'verbose_name': 'Список (Мы Москвичи)', 'verbose_name_plural': 'Списки (Мы Москвичи)', }, ), migrations.CreateModel( name='Nomination', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, verbose_name='Номинация')), ], options={ 'verbose_name': 'Номинация', 'verbose_name_plural': 'Номинация', }, ), migrations.CreateModel( name='PageContest', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(blank=True, max_length=150, verbose_name='Название конкурса')), ('logo', models.ImageField( upload_to=contests.models.PathAndRename('PageContests/'), verbose_name='Логотип')), ('content', ckeditor.fields.RichTextField(verbose_name='Контент')), ], options={ 'verbose_name': 'Страница конкурса', 'verbose_name_plural': 'Страницы конкурсов', }, ), migrations.CreateModel( name='Status', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(blank=True, max_length=35, verbose_name='Статус')), ], options={ 'verbose_name': 'Статус', 'verbose_name_plural': 'Статус', }, ), migrations.CreateModel( name='Theme', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=60, verbose_name='Тема')), ], options={ 'verbose_name': 'Тема', 'verbose_name_plural': 'Темы', }, ), migrations.CreateModel( name='TeacherExtra', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('fio', models.CharField(max_length=50, verbose_name='ФИО')), ('participants', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contests.mymoskvichi', verbose_name='Педагог')), ], options={ 'verbose_name': 'Педагог', 'verbose_name_plural': 'Педагоги', }, ), migrations.CreateModel( name='Participant', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('fio', models.CharField(max_length=50, verbose_name='Фамилия, имя')), ('participants', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contests.mymoskvichi', verbose_name='Участники')), ], options={ 'verbose_name': 'Участник', 'verbose_name_plural': 'Участники', }, ), migrations.CreateModel( name='NRusheva', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('reg_number', models.CharField(max_length=20, unique=True, verbose_name='Регистрационный номер')), ('barcode', models.CharField(max_length=15, verbose_name='Штрих-код')), ('fio', models.CharField(max_length=300, verbose_name='Участник')), ('fio_teacher', models.CharField(max_length=300, verbose_name='Педагог')), ('school', models.CharField(max_length=150, verbose_name='Образовательная организация')), ('city', models.CharField(blank=True, max_length=101, verbose_name='Город')), ('year_contest', models.CharField(default='2020-2021 год', max_length=20, verbose_name='Год проведения')), ('date_reg', models.DateTimeField(auto_now=True)), ('image', models.ImageField( upload_to=contests.models.PathAndRename('nrusheva/'), verbose_name='Изображение')), ('author_name', models.CharField(max_length=50, verbose_name='Авторское название')), ('format', models.CharField(choices=[('A1', 'A1'), ('A2', 'A2'), ('A3', 'A3')], max_length=2, verbose_name='Формат работы')), ('description', models.TextField(max_length=500, verbose_name='Аннотация')), ('age', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.age', verbose_name='Возраст')), ('district', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='users.district', verbose_name='Округ')), ('level', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.level', verbose_name='Класс')), ('material', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.material', verbose_name='Материал')), ('region', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='users.region', verbose_name='Регион')), ('status', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='contests.status', verbose_name='Статус')), ('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('theme', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.theme', verbose_name='Тема')), ], options={ 'verbose_name': 'Конкурс им. Нади Рушевой (участник)', 'verbose_name_plural': 'Конкурс им. Нади Рушевой (участники)', }, ), migrations.AddField( model_name='mymoskvichi', name='status', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='contests.status', verbose_name='Статус'), ), migrations.AddField( model_name='mymoskvichi', name='teacher', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.CreateModel( name='Artakiada', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('reg_number', models.CharField(max_length=20, unique=True, verbose_name='Регистрационный номер')), ('barcode', models.CharField(max_length=15, verbose_name='Штрих-код')), ('fio', models.CharField(max_length=300, verbose_name='Участник')), ('fio_teacher', models.CharField(max_length=300, verbose_name='Педагог')), ('school', models.CharField(max_length=150, verbose_name='Образовательная организация')), ('city', models.CharField(blank=True, max_length=101, verbose_name='Город')), ('year_contest', models.CharField(default='2020-2021 год', max_length=20, verbose_name='Год проведения')), ('date_reg', models.DateTimeField(auto_now=True)), ('image', models.ImageField( upload_to=contests.models.PathAndRename('artakiada/'), verbose_name='Изображение')), ('district', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='users.district', verbose_name='Округ')), ('level', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.level', verbose_name='Класс')), ('material', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.material', verbose_name='Материал')), ('nomination', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='contests.nomination', verbose_name='Номинация')), ('region', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='users.region', verbose_name='Регион')), ('status', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='contests.status', verbose_name='Статус')), ('teacher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'АРТакиада (участник)', 'verbose_name_plural': 'АРТакиада (участники)', }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('contest_categories', '0001_migrations'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='ContestsModel', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('contest_name', models.CharField(blank=True, max_length=150, null=True)), ('contest_internal_name', models.CharField(blank=True, max_length=150, null=True)), ('start_time', models.TimeField()), ('end_time', models.TimeField()), ('start_date', models.DateField(auto_now=True)), ('end_date', models.DateField(auto_now=True)), ('brand_name', models.CharField(blank=True, max_length=150, null=True)), ('prize_money', models.IntegerField(blank=True, null=True)), ('logo', models.ImageField(null=True, upload_to=contests.models.logo_directory)), ('gift_card', models.FileField(blank=True, null=True, upload_to=contests.models.gift_card_directory, verbose_name='Upload gift card')), ('qualification_eligibility', models.IntegerField(blank=True, null=True)), ('description', models.TextField(blank=True, null=True)), ('terms_and_conditions', models.TextField(blank=True, null=True)), ('ad_video', models.FileField(blank=True, null=True, upload_to=contests.models.ad_video_directory, verbose_name='Upload ad video')), ('cpm_daily_max_spend', models.IntegerField(blank=True, null=True)), ('cpc_ad_description', models.TextField(blank=True, null=True)), ('ad_url', models.TextField(blank=True, null=True)), ('cpc_daily_max_spend', models.IntegerField(blank=True, null=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'db_table': 'contests', }, ), migrations.CreateModel( name='ContestPrize', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('prize_range_type', models.IntegerField(choices=[(1, 'single'), (2, 'range')])), ('rank', models.IntegerField(blank=True, default=0, null=True)), ('from_range', models.IntegerField(blank=True, default=0, null=True)), ('to_range', models.IntegerField(blank=True, default=0, null=True)), ('prize_type', models.IntegerField(choices=[(1, 'membership'), (2, 'product_service')])), ('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contests.ContestsModel')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='ContestCategory', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contest_categories.ContestSubCategory')), ('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contests.ContestsModel')), ], options={ 'abstract': False, }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Contest', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField( max_length=255, validators=[ django.core.validators.MinLengthValidator(4), django.core.validators.MaxLengthValidator(255) ])), ('short_id', models.CharField( max_length=255, unique=True, validators=[ django.core.validators.RegexValidator( re.compile('^[-a-zA-Z0-9_]+\\Z'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid'), django.core.validators.MinLengthValidator(4), django.core.validators.MaxLengthValidator(255) ])), ('short_description', models.CharField( max_length=255, validators=[ django.core.validators.MinLengthValidator(4), django.core.validators.MaxLengthValidator(255) ])), ('description', models.TextField(validators=[ django.core.validators.MaxLengthValidator(4194304) ])), ('start_time', models.DateTimeField()), ('freezed', models.BooleanField()), ('finish_time', models.DateTimeField()), ], ), migrations.CreateModel( name='Language', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ('extensions', models.CharField(max_length=255)), ], ), migrations.CreateModel( name='Permission', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('code', models.CharField(max_length=32, unique=True)), ('description', models.TextField(validators=[ django.core.validators.MaxLengthValidator(1024) ])), ], ), migrations.CreateModel( name='Problem', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('short_id', models.CharField( max_length=255, validators=[ django.core.validators.RegexValidator( re.compile('^[-a-zA-Z0-9_]+\\Z'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid'), django.core.validators.MinLengthValidator(1), django.core.validators.MaxLengthValidator(255) ])), ('name', models.CharField( max_length=255, validators=[ django.core.validators.MinLengthValidator(1), django.core.validators.MaxLengthValidator(255) ])), ('statement', models.TextField(validators=[ django.core.validators.MaxLengthValidator(4194304) ])), ('disabled', models.BooleanField()), ('order', models.IntegerField()), ('time_limit', models.IntegerField()), ('tolerance', models.FloatField()), ('memory_limit', models.IntegerField()), ('output_limit', models.IntegerField()), ('checker_source', models.FileField( blank=True, null=True, upload_to=contests.models.checker_upload_path)), ('solution_source', models.FileField( blank=True, null=True, upload_to=contests.models.solution_upload_path)), ('tcgen_source', models.FileField( blank=True, null=True, upload_to=contests.models.tcgen_upload_path)), ('checker_language', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='checkers', to='contests.Language')), ('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='problems', to='contests.Contest')), ('solution_language', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='solutions', to='contests.Language')), ('tcgen_language', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tcgen', to='contests.Language')), ], ), migrations.CreateModel( name='Submission', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('solution_source', models.FileField( blank=True, null=True, upload_to=contests.models.submission_upload_path)), ('issued_time', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField( blank=True, default=None, max_length=255, null=True, validators=[ django.core.validators.MinLengthValidator(4), django.core.validators.MaxLengthValidator(255) ], verbose_name='name')), ('username', models.CharField( blank=True, default=None, max_length=64, null=True, validators=[ django.core.validators.RegexValidator( re.compile('^[-a-zA-Z0-9_]+\\Z'), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid'), django.core.validators.MinLengthValidator(4), django.core.validators.MaxLengthValidator(64) ], verbose_name='username')), ('email', models.EmailField( max_length=255, validators=[ django.core.validators.EmailValidator(), django.core.validators.MinLengthValidator(4), django.core.validators.MaxLengthValidator(255) ], verbose_name='email')), ('password', models.CharField(blank=True, default=None, max_length=255, null=True)), ('signup_otc', models.CharField(blank=True, default=None, max_length=32, null=True)), ('reset_password_otc', models.CharField(blank=True, default=None, max_length=32, null=True)), ('contest', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='members', to='contests.Contest')), ('permissions', models.ManyToManyField(to='contests.Permission')), ], ), migrations.AddField( model_name='submission', name='issuer', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='contests.User'), ), migrations.AddField( model_name='submission', name='problem', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='contests.Problem'), ), migrations.AddField( model_name='submission', name='solution_language', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='submissions', to='contests.Language'), ), migrations.AddField( model_name='contest', name='permitted_languages', field=models.ManyToManyField(to='contests.Language'), ), migrations.AlterUniqueTogether( name='user', unique_together={('username', 'contest'), ('email', 'contest')}, ), migrations.AlterUniqueTogether( name='problem', unique_together={('short_id', 'contest')}, ), ]
class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('contests', '0012_auto_20170127_1347'), ] operations = [ migrations.CreateModel( name='ContestAccount', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(blank=True, max_length=100, verbose_name='队伍名')), ('accept_count', models.IntegerField(default=0, verbose_name='通过题数')), ('submit_count', models.IntegerField(default=0, verbose_name='提交次数')), ('penalty', models.IntegerField(default=0, verbose_name='罚时')), ], options={ 'ordering': ('contest', 'user'), 'verbose_name_plural': '比赛账号', 'verbose_name': '比赛账号', }, ), migrations.CreateModel( name='ContestStatistic', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('accept_count', models.IntegerField(default=0)), ('submit_count', models.IntegerField(default=0)), ('accept_time', models.IntegerField(default=0)), ('account', models.ForeignKey(on_delete=models.SET( contests.models.get_sentinel_user), related_name='statistic', to='contests.ContestAccount')), ], options={ 'verbose_name_plural': '比赛数据', 'verbose_name': '比赛数据', }, ), migrations.RemoveField( model_name='contest', name='participants', ), migrations.AddField( model_name='conteststatistic', name='contest', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='statistic', to='contests.Contest'), ), migrations.AddField( model_name='conteststatistic', name='problem', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='statistic', to='contests.ContestProblem'), ), migrations.AddField( model_name='contestaccount', name='contest', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='participants', to='contests.Contest'), ), migrations.AddField( model_name='contestaccount', name='user', field=models.ForeignKey(on_delete=models.SET( contests.models.get_sentinel_user), related_name='contest_account', to=settings.AUTH_USER_MODEL), ), migrations.AlterUniqueTogether( name='conteststatistic', unique_together=set([('contest', 'account', 'problem')]), ), migrations.AlterUniqueTogether( name='contestaccount', unique_together=set([('user', 'contest')]), ), ]