Files
003-fleet-management/001.BACKEND/kupci/management/commands/populate_kupci.py
2026-05-20 21:24:00 +02:00

55 lines
1.8 KiB
Python

import random
from django.core.management.base import BaseCommand
from faker import Faker
from kupci.models import Kupac
class Command(BaseCommand):
help = 'Popunjava bazu podataka s testnim kupcima'
def add_arguments(self, parser):
parser.add_argument(
'total',
type=int,
help='Broj kupaca koje želiš kreirati',
default=10
)
def handle(self, *args, **kwargs):
total = kwargs['total']
fake = Faker(['hr_HR'])
self.stdout.write(self.style.MIGRATE_HEADING(f'🚀 Kreiram {total} kupaca...'))
created_count = 0
for _ in range(total):
tip = random.choice(['pravno', 'fizicko'])
if tip == 'pravno':
naziv = fake.company()
else:
naziv = fake.name()
# Generiramo OIB (nasumičnih 11 znamenki)
oib = "".join([str(random.randint(0, 9)) for _ in range(11)])
try:
# Koristimo get_or_create ili create da izbjegnemo duplikate OIB-a
# ako je polje unique=True u modelu
Kupac.objects.create(
naziv=naziv,
oib=oib,
email=fake.email(),
telefon=fake.phone_number(),
adresa=fake.street_address(),
grad=fake.city(),
postanski_broj=fake.postcode(),
tip=tip,
napomena="Automatski generiran testni kupac.",
aktivno=True
)
created_count += 1
except Exception as e:
# Ako OIB slučajno bude isti, samo nastavi dalje
continue
self.stdout.write(self.style.SUCCESS(f'✅ Uspješno dodano {created_count} novih kupaca!'))