我有一个问题。我必须从excel / csv文件导入Django Admin应用程序中允许的所有用户。有人可以提供建议,指导我如何在Django Admin Interface中实现此功能。我可以使用一个脚本吗?所有这些都将被允许登录到我的Django应用,并且所有这些都将自动成为员工用户。
答案 0 :(得分:2)
所以对于那些会穿在我鞋子里的人,请看下面是什么花招!
import csv, sys, os, django
project_dir = "/parcare/src/"
sys.path.append(project_dir)
os.environ['DJANGO_SETTINGS_MODULE'] = 'adp_parking.settings'
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", __file__)
import django
django.setup()
from django.contrib.auth import authenticate
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth import get_user_model
from django.conf import settings
User = get_user_model()
file = 'import.csv'
data = csv.reader(open(file), delimiter=",")
for row in data:
if row[0] != "Number":
# Post.id = row[0]
Post=User()
Post.password = row[1]
Post.last_login = "2018-09-27 05:51:42.521991"
Post.is_superuser = "0"
Post.username = row[2]
Post.first_name = row[3]
Post.email = row[4]
Post.is_staff = "1"
Post.is_active = "1"
Post.date_joined = "2018-09-27 05:14:50"
Post.last_name=row[5]
Post.save()
这是我的import.csv文件的样子
现在,唯一的步骤就是授予所有权限。 只有非管理员的第二条记录才有权限。
PS添加散列的通行证,没有它,用户将无法使用。因此,您必须创建一个测试合格证,并使用插入到合格证行field ==>中的哈希值进行操作,这就像一个超级魅力。
答案 1 :(得分:0)
from django.http import JsonResponse
from csv import reader
from django.contrib.auth.models import User
def userdata(request):
with open('templates/csv/your_file.csv', 'r') as csv_file:
csvf = reader(csv_file)
data = []
for username, password, *__ in csvf:
user = User(username=username)
user.set_password(password)
data.append(user)
User.objects.bulk_create(data)
return JsonResponse('user csv is now working', safe=False)
path('userdata /',userdata,name ='userdata')
##只是重定向到url,所有数据将被推送到数据库