Добавление приспособления Django к существующим данным

У меня есть таблица, которая уже содержит некоторые данные. Можно ли создать приспособление с новыми записями данных и добавить их к существующим данным в таблице, не указывая явно пк?

Если вы хотите использовать приспособления, вы можете создать файл Migration в соответствующем приложении:

from django.db import migrations, models


def add_fixtures(apps, schema_editor):
    Model = apps.get_model("app_name", "model_name")  # You must replace app_name and model_name with your values
    db_alias = schema_editor.connection.alias
    # Now you can create some instances like this (you can omit the pk):
    Model.objects.using(db_alias).create(**your_data)


def remove_fixtures(apps, schema_editor):
    # Reverses the action (needed for compatibility)
    Model = apps.get_model("app_name", "model_name")  # You must replace app_name and model_name with your values
    db_alias = schema_editor.connection.alias
    # Now you must delete the instances you created earlier, for example:
    Model.objects.using(db_alias).filter(id=1).delete()


class Migration(migrations.Migration):
    dependencies = [
       # You must insert the last migration of the app, for example: ('app_name', '000x_migration_name')
    ]
    
    operations = [
       migrations.RunPython(add_fixtures, remove_fixtures)
    ]

В противном случае вы можете просто создать новые записи с помощью скрипта и запустить его в консоли:

# First obtains your data from a dictionary or maybe parsing a file (you can omit the pk)
data_list = [{'example': 1}, {'example': 2}]

for data in data_list:
   YourModelName.objects.create(**data)  # You must replace YourModelName with the name of your model

Наконец, вы также можете использовать SQL для вставки данных непосредственно в базу данных.

Вернуться на верх