Как я могу вернуть User () в Json из Django после входа в систему? - PullRequest
0 голосов
/ 03 августа 2020

В моем внутреннем алгоритме, когда я вхожу в систему, он возвращает полные данные пользователя, например:

Например:

# If server returns 200 it also returns user info

"token": "token here",
"user": {
   "id": "id here",
   "email": "userabc@gmail.com",
   "username": "userabc",
   "first_name": null,
   "last_name": null,
   "sign_up_date": "2020-07-30T11:56:12.703000Z",
   "last_login": "2020-08-03T12:34:24.305638Z"
}

У меня есть функция Json, например это:

  Future<User> signIn(String email, String password) async {

...# Necessary function   

    if (response.statusCode == 200) {
       return User();
    }

    else {
    ...
    }

Он проходит проверку подлинности нормально, но я не знаю, как вернуть пользователя. Как я могу это сделать, есть ли у кого-нибудь идеи?

Обновление 1:

enter image description here

Update 2:

1st Error : User = list.map((model) => U.fromJson(model)).toList();

2nd Error : User = list.map((model) => U.fromJson(model)).toList();

3rd Error : User = list.map((model) => U.fromJson(model)).toList();

Rest of the code works fine.

Update 3:

введите описание изображения здесь

1 Ответ

0 голосов
/ 03 августа 2020

Вы должны создать модель пользователя из json:

Map<String, dynamic> map = json.decode(response.body);
Iterable list = map['user'];
User = list.map((model) => U.fromJson(model)).toList();

И до:

User(
        this.id,
        this.email,
        this.userName,
        this.firstName,
        this.lastName,
        this.signUpDate,
        this.lastLogin,
        );

User.fromJson(Map json)
        :   id = json['id'],
            email = json['email'],
            userName = json['username'],
            firstName = json['first_name'],
            lastName = json['last_name'],
            signUpDate = json['sign_up_date'],
            lastLogin = json['last_login'];
...