Python   Django   Models  
▌Introduction
We will learn how to initialize data
into database for Models.
▋Related articles
▌Environment
▋Python 3.6.2
▋Django 1.8.18
▌Implement
▋Create Model objects
▋{migration_name}.py
from django.db import migrations,
models
# Initialize ProductTypes
def initProdustTypes(apps, schema_editor):
    ptModel =
apps.get_model("app", "ProductType") #apps.get_model(app_label,
model_name, require_ready=True)
    ptDataBook =
ptModel(Id=1, Name='Book')
   
ptDataBook.save()
    ptDataClothes =
ptModel(Id=2, Name='Clothes')
   
ptDataClothes.save()
    ptDataToy =
ptModel(Id=3, Name='Toy')
   
ptDataToy.save()
# Remove all records in ProductTypes
def removeProductTypes(apps, schema_editor):
    ptModel =
apps.get_model("app", "ProductType") 
   
ptModel.objects.all().delete()
class Migration(migrations.Migration):
    dependencies =
[
    ]
    operations = [ 
        migrations.RunPython(initProdustTypes,removeProductTypes)
    ]
▋SQL statement
We can
also use SQL for initializing the data.
▋Install sqlparse for parse 
We will
need sqlparse to parse
the sql statement.
$ python –m pip install sqlparse 
 | 
 
▋{migration_name}.py
from django.db import migrations,
models
def initProdustTypesSql():
    sql = """
      INSERT INTO
ProductTypes VALUES(1, 'Book');
      INSERT INTO
ProductTypes VALUES(2, 'Clothes');
      INSERT INTO
ProductTypes VALUES(3, 'Toy');
   
"""
    return sql
def removeProductTypesSql():
    return 'DELETE from
ProductTypes'    
class Migration(migrations.Migration):
    dependencies =
[
    ]
    operations = [
        migrations.RunSQL(initProdustTypesSql(), removeProductTypesSql())
    ]
▌Reference

沒有留言:
張貼留言