13.自定义management命令 批量导入应聘者信息

74 阅读1分钟

使用csv文件 批量导入投递者信息

自定义管理工具

mkdir wangdalei_dj/interview/management/commands

image.png

wangdalei_dj/interview/management/commands/import_candidates.py

import csv
from django.core.management import BaseCommand
from interview.models import Candidate

# run command to import candidates:
# python manage.py import_candidates --path /path/to/your/file.csv


class Command(BaseCommand):
    help = '从一个CSV文件的内容中读取候选人列表,导入到数据库中'

    def add_arguments(self, parser):
        parser.add_argument('--path', type=str)

    def handle(self, *args, **kwargs):
        path = kwargs['path']
        # with open(path, 'rt', encoding="gbk") as f:
        with open(path, 'rt') as f:
            reader = csv.reader(f, dialect='excel', delimiter=';')
            for line in reader:
                row = line[0].split(",")
                print(row)
                candidate = Candidate.objects.create(
                    userid=row[8],
                    username=row[0],
                    city=row[1],
                    phone=row[2],
                    bachelor_school=row[3],
                    major=row[4],
                    degree=row[5],
                    test_score_of_general_ability=row[6],
                    paper_score=row[7]
                )

                print(candidate)

用法

python3 manage.py import_candidates --path /path/to/your/file.csv

image.png

将数据导入后台 image.png

image.png