CSV Import to Models
A snippet showing how to import CSV data into Django models.
# models.py
from django.db import models
class Product(models.Model):
sku = models.CharField(max_length=30, unique=True)
name = models.CharField(max_length=150)
# admin.py
from django.contrib import admin
from .models import Product
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display = ("sku","name")
import csv
from django.core.exceptions import ValidationError
from app.models import Product
def import_csv(path):
objs = []
with open(path, newline="") as f:
for row in csv.DictReader(f):
p = Product(sku=row["sku"], name=row["name"])
try:
p.full_clean()
except ValidationError:
continue
objs.append(p)
Product.objects.bulk_create(objs, ignore_conflicts=True)
Explanation:
-
Validate rows with
full_clean()before saving. -
Use
bulk_create(..., ignore_conflicts=True)to skip duplicates.
- Category Utilities & Miscellaneous
- Total Views 740
- Last Modified 18 June, 2026
- Tags #csv #import #utilities #models
Previous snippet
UUID Primary Keys
Next snippet