Как преобразовать JSON из Django в массив JavaScript и использовать его для заполнения параметра 'users' в Mention.js?

Привет, ребята! У меня возникла проблема с использованием библиотеки Mention.js в моем проекте на Django. Мне нужно заполнить выпадающий список пользователей данными из JSON, который я получаю с бэкенда.

Вот как выглядит мой JSON:

[
    {
        "fields": {
            "avatar": "images/avatars/ivan.png", 
            "name": "Иван Петров"
        }, 
        "model": "accounts.profile", 
        "pk": 5
    },
    {
        "fields": {
            "avatar": "images/avatars/maria.png", 
            "name": "Мария Сидорова"
        }, 
        "model": "accounts.profile", 
        "pk": 7
    }
]

Я пытаюсь преобразовать эти данные в формат, который ожидает Mention.js:

users: profile_array.map(function (profile) {
    return {
        username: profile.fields.name,
        name: profile.fields.name,
        image: '/media/' + profile.fields.avatar
    };
})

Но у меня возникли сложности с полем username. Как мне правильно заполнить все необходимые поля для Mention.js? Буду благодарен за любую помощь!

Для username можно использовать pk из JSON, это уникальный идентификатор. Вот как можно модифицировать код:

users: profile_array.map(function (profile) {
    return {
        username: profile.pk.toString(),
        name: profile.fields.name,
        image: '/media/' + profile.fields.avatar
    };
})

Так у каждого пользователя будет уникальный username. Если нужно именно строковое имя пользователя, можно генерировать его из имени, например: username: profile.fields.name.toLowerCase().replace(' ', '_')

А может попробовать такой вариант - создать функцию, которая будет генерировать уникальный username из имени? Типа:

function generateUsername(name) {
return name.toLowerCase().replace(/\s+/g, ‘’) + Math.floor(Math.random() * 1000);
}

И потом использовать ее в маппинге:

username: generateUsername(profile.fields.name),

Получится что-то вроде ‘ivanpetrov123’. И уникально, и понятно кто это.

слушай, а я вот что подумал - может быть стоит добавить еще одно поле в профиль юзера, типа никнейм или логин? тогда можно будет его использовать для username в mention.js, и проблема решится сама собой.

а пока можно сделать так, как предложили выше - использовать pk в качестве username. или еще вариант - взять первую букву имени и фамилию, получится что-то вроде ipetrov для ивана петрова.

в любом случае, главное чтобы username был уникальным для каждого юзера, иначе могут быть проблемы с упоминаниями. удачи с проектом!