0002_create_homepage.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # -*- coding: utf-8 -*-
  2. from django.db import migrations
  3. def create_homepage(apps, schema_editor):
  4. # Get models
  5. ContentType = apps.get_model('contenttypes.ContentType')
  6. Page = apps.get_model('wagtailcore.Page')
  7. Site = apps.get_model('wagtailcore.Site')
  8. HomePage = apps.get_model('home.HomePage')
  9. # Delete the default homepage
  10. # If migration is run multiple times, it may have already been deleted
  11. Page.objects.filter(id=2).delete()
  12. # Create content type for homepage model
  13. homepage_content_type, __ = ContentType.objects.get_or_create(
  14. model='homepage', app_label='home')
  15. # Create a new homepage
  16. homepage = HomePage.objects.create(
  17. title="Home",
  18. draft_title="Home",
  19. slug='home',
  20. content_type=homepage_content_type,
  21. path='00010001',
  22. depth=2,
  23. numchild=0,
  24. url_path='/home/',
  25. )
  26. # Create a site with the new homepage set as the root
  27. Site.objects.create(
  28. hostname='localhost', root_page=homepage, is_default_site=True)
  29. def remove_homepage(apps, schema_editor):
  30. # Get models
  31. ContentType = apps.get_model('contenttypes.ContentType')
  32. HomePage = apps.get_model('home.HomePage')
  33. # Delete the default homepage
  34. # Page and Site objects CASCADE
  35. HomePage.objects.filter(slug='home', depth=2).delete()
  36. # Delete content type for homepage model
  37. ContentType.objects.filter(model='homepage', app_label='home').delete()
  38. class Migration(migrations.Migration):
  39. dependencies = [
  40. ('home', '0001_initial'),
  41. ]
  42. operations = [
  43. migrations.RunPython(create_homepage, remove_homepage),
  44. ]