Сохранение фрейма данных 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)

Поэтому мне нужно добавить логику валидации перед вставкой данных в базу данных, чтобы в моем случае мы не могли хранить дубликаты продуктов с одинаковым названием или именем_продукта.

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