Сохранение фрейма данных pandas в модель django с логикой, позволяющей избежать хранения дубликатов записей для поля в базе данных
Как можно добавить логику, чтобы избежать дублирования входящих данных. Например, я могу сохранить файл excel в своей базе данных с помощью to_sql. Мне нужно проверить, что не может быть создано двух дублирующих записей для столбца, в данном случае у меня есть столбец title, и проверить, что если два продукта имеют одинаковое название или имя, запись не будет добавлена в базу данных.
import pandas as pd
from django.core.management.base import BaseCommand
from store.models import Product
from sqlalchemy import create_engine
from django.conf import settings
class Command(BaseCommand):
help = "A command to add data from an Excel file to the database"
def handle(self, *args, **options):
excel_file = 'Product_data.xlsx'
df = pd.read_excel(excel_file)
#connection to mysql
user = settings.DATABASES['default']['USER']
password = settings.DATABASES['default']['PASSWORD']
database_name = settings.DATABASES['default']['NAME']
database_url = 'mysql://{user}:{password}@localhost:3306/{database_name}'.format(user=user,password=password,database_name=database_name)
engine = create_engine(database_url, echo=False)
df.to_sql(Product._meta.db_table, if_exists='append', con=engine, index=False)
Поэтому мне нужно добавить логику валидации перед вставкой данных в базу данных, чтобы в моем случае мы не могли хранить дубликаты продуктов с одинаковым названием или именем_продукта.