def unseed_db():
"""
Deletes all seed data from the database
"""
fake_program_ids = (
Program.objects
.filter(description__startswith=FAKE_PROGRAM_DESC_PREFIX)
.values_list('id', flat=True)
)
fake_user_ids = (
User.objects
.filter(username__startswith=FAKE_USER_USERNAME_PREFIX)
.values_list('id', flat=True)
)
fake_tier_ids = (
TierProgram.objects
.filter(program__id__in=fake_program_ids)
.values_list('tier__id', flat=True)
)
fake_final_grade_ids = (
FinalGrade.objects
.filter(course_run__course__program__id__in=fake_program_ids)
.values_list('id', flat=True)
)
financial_aid_ids = (
FinancialAid.objects
.filter(Q(user_id__in=fake_user_ids) | Q(tier_program__program__id__in=fake_program_ids))
.values_list('id', flat=True)
)
fin_aid_audit_models = [FinancialAidAudit, FinancialAidEmailAudit]
with mute_signals(post_delete):
with remove_delete_protection(*fin_aid_audit_models):
for audit_model in fin_aid_audit_models:
audit_model.objects.filter(financial_aid__id__in=financial_aid_ids).delete()
for model_cls in [CachedEnrollment, CachedCertificate, CachedCurrentGrade]:
model_cls.objects.filter(course_run__course__program__id__in=fake_program_ids).delete()
Tier.objects.filter(id__in=fake_tier_ids).delete()
FinalGrade.objects.filter(id__in=fake_final_grade_ids).delete()
Program.objects.filter(id__in=fake_program_ids).delete()
User.objects.filter(id__in=fake_user_ids).delete()
评论列表
文章目录