Django rest framework и получение значений сериализатора с использованием исходного ключевого слова

Эта функция index использует вложенные функции match для учета нескольких возможных столбцов и поиска нужной строки. Однако будьте осторожны, если ваша таблица имеет повторяющиеся значения в записях (например, скажем, ячейки B2 и D4 совпадают), тогда это не будет работать точно.

=INDEX(Sheet2!$A$1:$E$7,IFERROR(MATCH(Sheet1!B2,Sheet2!$B$1:$B$7,0),IFERROR(MATCH(Sheet1!B2,Sheet2!$C$1:$C$7,0),IFERROR(MATCH(Sheet1!B2,Sheet2!$D$1:$D$7,0),IFERROR(MATCH(Sheet1!B2,Sheet2!$E$1:$E$7,0),"not found")))),MATCH("Account Names",Sheet2!$A$1:$E$1,0))

Обратите внимание, что если первое вложенное match функции сбой (имя отсутствует в таблице), тогда внутренний результат «не найден» ... вы не увидите этого, потому что он становится аргументом для функции index, которая, очевидно, не повторяется, и поэтому вы просто получите ошибку #VALUE!. Поэтому было бы неплохо обернуть функцию iferror вокруг всего.

1
задан Sethen 19 January 2019 в 06:35
поделиться

1 ответ

Данные 'reputation' вложены в dict под клавишей 'profile'. Вам нужно вставить этот дикт и передать его в профиль:

def create(self, validated_data):
    profile_data = validated_data.pop('profile')
    password = validated_data.get('password')
    user = User.objects.create(**validated_data)
    user.set_password(password)
    user.save()

    Profile.objects.create(user=user, **profile_data)

    return user
0
ответ дан knbk 19 January 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: