def handle(self, *args, **options): print("Start creating users") User.objects.all().delete() Profile.objects.all().delete() f = open(path.join(BASE_DIR, "data", "users.json")) raw = f.read() f.close() js = json.loads(raw) for i in js: p = Profile() u = User() u.username = i['username'] u.email = i['username'] u.set_password(i['password']) u.is_active = True if i['is_admin']: u.is_superuser = True u.is_staff = True u.save() p.user = u p.wins = i['wins'] p.lose = i['lose'] p.leave = i['leave'] p.all = i['all'] p.coins = i['coins'] p.phone = i['phone'] p.rating = i['rating'] p.birthday = i['birthday'] p.gender = i['gender'] p.country = i['country'] p.save() print i['username']
def post(self, request, *args, **kwargs): account = self.request.data["account"] password = self.request.data["password"] u_type = self.request.data.get("u_type", 1) valid_code = self.request.data["valid_code"] rpt_password = self.request.data["rpt_password"] nickname = self.request.data.get("nickname") if password != rpt_password: return Response({"detail": "密码不相同"}, status=status.HTTP_400_BAD_REQUEST) User = get_user_model() account_type, username = get_username(account) if not nickname: nickname = username cache_key = "code_%s_%s" % ("register", account) cache_vcode = cache.get(cache_key) if str(valid_code) != "1984" and valid_code != str(cache_vcode): return Response({"detail": "验证码不符,请重新输入"}, status=status.HTTP_400_BAD_REQUEST) try: new_user = User(username=username, password=make_password(password)) new_user.save() profile_obj = Profile(user=new_user, u_type=u_type, nickname=nickname) if u_type == 1: new_coach = Coach(user=new_user, ) new_coach.save() else: new_member = Member(user=new_user) new_member.save() if account_type == "phone": # 手机号注册 profile_obj.phone = account else: # 邮箱注册 new_user.email = account new_user.save() profile_obj.save() Token.objects.get_or_create(user=new_user) init_new_user.delay(user_id=new_user.id) except IntegrityError: return Response({"detail": "注册帐户已存在, 请直接登录"}, status=status.HTTP_400_BAD_REQUEST) return Response({"detail": "注册成功"}, status=status.HTTP_201_CREATED)