私はおそらくこれについてすべて間違っているので、いくつかのガイダンスが必要です。mention.js
作成中のアプリケーションの投稿でプロファイルをリンクするために使用しています。ハードコードされたデータでこれを機能させるのは簡単です。ドキュメントに書かれている通りに設定するだけです。
私のアプリでは、ログインしている各ユーザーは組織に属しており、この組織は Django から JSON として取得されます。これらのデータを選択するmention.js
ドロップダウンを作成して、ユーザーが入力すると組織リストが表示されるようにします。ターミナル コンソールとブラウザ コンソールに JSON を記録しました。
[
{
"fields": {
"avatar": "images/avatars/bob.png",
"name": "Bob Jones"
},
"model": "accounts.profile",
"pk": 5
},
{
"fields": {
"avatar": "images/avatars/sam.png",
"name": "Sam Smith"
},
"model": "accounts.profile",
"pk": 7
}
]
だから私はDjangoから正しいデータを取得しています。データを比較的簡単に解析して、ブラウザー コンソールに出力できます。
console.log(profile_array[0].fields.name);
次のステップは、これをmention.js
users
パラメーターに入れることです。@sainaenの回答に基づいて、JavaScriptにこれがあります:
users: profile_array.map(function (profile) {
return {
username: profile.fields.name, // this still missing
name: profile.fields.name,
image: '/media/' + profile.fields.avatar
};
})
username
問題は、私のプロファイルにフィールドがないことです。リレーションシップUser
によってモデルにリンクされています。OneToOne
したがって、私の見解では、実際には JSON の 2 つのチャンクを返しています。プロファイル (name
およびavatar
) とユーザー ( username
) です。
これらの JSON オブジェクトを組み合わせることができることに気付いたので、それを実行しました。
しかし、現在、 のパラメーターのusername
出力を取得するのに問題があります。users
mention.js
アップデート
これを解決するためusername
に、プロファイル モデルにフィールドを追加しました。プロファイル モデルの が と等しくなるように、save
オーバーライドにいくつかのコードを追加しました。これが最善の方法かどうかはわかりませんが、@ sainaenの回答が機能するようになります.username
user.username