Добавление приспособления 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 для вставки данных непосредственно в базу данных.