python - 辞書の用語の非構造化テキストを解析して、用語へのリンクを含めます

python django django-templates

私はdjangoプロジェクトに取り組んでおり、thingsのリストを持つモデルがあります。サイト全体で、構造化されていないテキストが他のモデルに入力されている場合があります。ページの表示時に、thing.slugへの参照がないか、非構造化テキストを解析し、thing.get_absolute_urlへのリンクを含めます。

アプリは、object.textを解析するカスタムテンプレートタグで構成する必要があると想定します。これは、正規表現パーサーのようなものを使用して、すべてのthing.slugの辞書からのthings用語に一致します。

例えば:


私はthingAとthingBを持っていますが、thingCが欲しいです。


次のように変更されます:

I have <a href="/things/a">thingA</a> and <a href="/things/b">thingB</a>, but would like <a href="/things/c">thingC</a>.


すでにこれを行うdjangoアプリがある場合は、すばらしいです!それ以外の場合は、これを達成するための最善の方法に関するアドバイスをいただければ幸いです。私はそれに慣れていないにもかかわらず、jqueryなどの他の提案も用意しています。
答え
urls = dict((thing.slug, thing.get_absolute_url) for thing in things)
for word in object.text.split():
  if word in urls:
     result.append('<a href="'+urls[words]+'">'+word+'</a> ')
  else
     result.append(word+' ')
関連記事

python - すべてのスレッドが終了したときにのみIPythonに新しいプロンプトを表示させるにはどうすればよいですか

python - Pythonのネットワークマルチスレッド

python - シングルリンククラスタリング

python - マルチプロセッシングキューモジュールを介して関数にリストを渡すときにエラーが発生しました

python - Python + Cairo + GTK / GDKピクセルバッファーの簡単なセットアップ

python - JavaScriptを介してMongoインデックスを追加する

python - タブ化された一連のQDockWidgetのトップQDockWidgetを設定する

python - あるプログラムから別のプログラムでstdoutを読み取る

python - Pythonで数値を分割する方法の数

python - pythonはhtmlフォームからファイルを受け取ります