問題タブ [django-custom-tags]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
991 参照

django - モデルから画像を出力するDjangoテンプレートタグ

私は Django を初めて使用し、最初のプロジェクトに取り組み始めたばかりです。私は common.utils.abstact_models.py にあるモードを持っています:

多分これも役に立つでしょう。私は別のモデルを持っています:

MEDIA_URL/uploads/event_photosに写真をアップロードしました

現在のユーザーの写真を出力するには、テンプレート タグを記述する必要があります。10枚の写真としましょう。私はほとんどコードを持っていません。いくつかから始めました。

このテンプレート タグを書く際に何か提案はありますか?

0 投票する
2 に答える
540 参照

django - Django:カスタムテンプレートの単純なタグは例外を発生させるか、サイレントに失敗する必要がありますか?

公式ドキュメントからこの質問への回答を見つけようとしましたが、見つけることができたのは次のとおりです。

render() が TemplateSyntaxError やその他の例外を発生させてはなりません。テンプレート フィルターがそうであるように、サイレント モードで失敗するはずです。

しかし、上記は実際には質問に答えていません。おそらく、それは通常のカスタムタグに適用され、私の懸念は単純なタグにあるため、さらに混乱しました。

例(および質問自体)を次に示します。

あなたの答えが例外を発生させることである場合、それはTemplateSyntaxErrorまたは他の例外でしょうか?

0 投票する
1 に答える
3124 参照

django - ファイルからカスタム Django タグをロードするにはどうすればよいですか?

mytag.py ファイルに mytag のタグ定義があります。これは、settings.py と INSTALLED_APPS を使用して Django プロジェクトを使用している場合に正常に機能します。リストに「myapp」を追加し、mytag.py を myapp/templatetags に配置します。

現在、django.conf.settings.configure を使用していますが、templatetags サブディレクトリを持つモジュールがありません。mytag.py をロードするにはどうすればよいですか?


アップデート:

templatetags ディレクトリでモジュールを使用しようとしましたが、動作しません。これが私のセットアップです:

ファイル:

  • マイアプリ
    • __init.py__
    • テンプレートタグ
      • __init__.py
      • mytag.py
  • プログラム
    • test.py
    • test.html

これは関連するコードです:

test.py を実行すると、次のメッセージが表示されます。

0 投票する
2 に答える
531 参照

python - Django でカスタム テンプレート タグの実装に問題がある

いくつかのカスタム テンプレート タグをアプリにもう少し実装して、より適切に構造化しようとしています。厄介な部分は、チュートリアルタイプの投稿に従ってコードを取得したことですが、それでも機能しません。

thiscurrent_timeに従っていくつかのタグを実装しようとしましたが、理解できないエラーが発生しています。

まず、最新の投稿のフィルター、または私の場合は最新の画面が表示されます Exception Value: No module named gallery

私のプロジェクトは「S3gallery」と呼ばれ、私のアプリは「ギャラリー」と呼ばれ、私のモデルは「スクリーンショット」と呼ばれます。タグのモデル引数は、ドキュメントで app_name.Model_name を取ると言っているので、私はこれにこだわっています。

カスタム タグ コードは次のようになります。

私はそれを使用してテンプレートにロードしようとしましたが、{% load get_latest gallery.screenshots 5 as recent_screens %}私が見た例ではタグに「ロード」を使用していませんが、そうするとDjangoはタグを認識しません。私はそれで迷っていますが、正しい道を進んでいると思いますか. これに関するヘルプは大歓迎です:)

0 投票する
3 に答える
177 参照

python - 分の整数を「X 時間 Y 分」でフォーマットされた文字列に変換する関数を作成する最良の方法は何ですか?

現在、次のような Django カスタム テンプレート フィルターがあります。

いくつかの可能な出力:

' '.join(....split())トリックは、このソリューションから得たものでした。文字列の最初または最後 (0 時間または 0 分の場合) で余分な文字列を確認するだけでよいことはわかっていますが、それはうまくいくようで、一部の人にとっては正規表現よりも読みやすいかもしれません。人。

また、ほぼ同じif-thenブロックを 2 回繰り返しているため、DRY に違反していると感じています。みたいなことを考えていた...

if-thenしかし、別のブロックなしで「時間」または「分」を選択する方法がわかりませんでした。また、if-then1行に2つの略記も少し醜く見えます...

提案やヒントをいただければ幸いです。ありがとう!

0 投票する
1 に答える
72 参照

django - Django カスタムタグ

複数のパラメーターを渡す必要があるカスタムタグを作成しています。、区切りリストで引数として実行できますが、そのリストにオブジェクトを渡すときに問題に直面しています。

そして私はそれを呼び出して、htmlでこのような引数を渡します

上記のシナリオでは、 pk と 100 、 100 を渡し、正常に動作します。しかし、オブジェクトである別のものを渡す必要があります。{{ image.pk|mytag:"100,100,{{image.name}}"}} しかし、これは別の構文を試してもうまくいきませんでした。

0 投票する
2 に答える
1084 参照

django - モデルプロパティでのDjangoユーザーインジェクション

私はDjangoにこのモデルを持っています:

関係は次のとおりです。

問題はユーザー(リクエスト/セッション中)です。ユーザーはリアクションまたはコメントをサブスクライブする可能性があります。彼はログインしているかどうかはわかりません。(これはfooの例であり、あまり意味がありません)

テンプレートではできません:

問題は次のとおりです。

  • テンプレート内のメソッドをパラメーターで呼び出すことができません(上記のコメントを参照)
  • モデルはリクエストにアクセスできません

今、私はModelのinit_userメソッドを呼び出して、リクエストを渡します。News次に、同じメソッドCommentとモデルを使用し、各モデルの子を循環するプロパティReactionを設定する必要があります。user_subscribed

これを行うためのよりスマートな方法はありませんか?

編集:カスタムタグの使用に関するIgnacioのヒントのおかげで、ユーザーを渡すために汎用モードを実行しようとしています(atmの使用方法がわからないため、クロージャの使用を避けています):

私がそれを使うとき、私はで{% inject_user object.method_that_receives_a_user request.user %}このエラー'str' object is not callablemethod_injected(user)出くわします; どうすれば修正できますか?

0 投票する
1 に答える
4360 参照

python - 包含タグを介してコンテキスト変数を渡す

利用者の出席の有無を確認する。is_attendingで構文エラーを発生させずにコンテキスト変数をテンプレートに渡すにはどうすればよい'is_attending': context['is_attending']ですか? このチェックは、基本的に div のスタイリングなどに使用されます。私は何を間違っていますか?

テンプレート:

フィルター.py

ありがとうございました!

0 投票する
2 に答える
566 参照

django - djangoインクルージョンタグkwargsエラーは「関数は2つの引数を取る」と言います

私は包含タグを書きました、それは文脈と*argsと**kwargsを取ります

レンプレート:

私のコードの何が問題になっていますか?

0 投票する
1 に答える
748 参照

django - djangoのカスタムテンプレートタグを使用して、テンプレート内の他のブロックにコードを挿入することは可能ですか?

HTML要素を編集可能にするためのコードでラップするカスタムテンプレートタグを書いています。これは、CSSと、データをサーバーに送信して保存するJSによってバックアップされます。

このコンポーネントには、を含める必要があります

ページの下部にあり、

頂点で。

ページテンプレートにはすでに2つの「js」と「css」のテンプレートブロックがあります。

私の質問-私のタグが存在する場合、カスタムテンプレートタグがこれらのスクリプトを関連するページブロックに一度含める方法はありますか?

IE私が入れた:

そして、「js」と「css」のテンプレートブロックには、関連するscript \ linkタグが入力されますか?

(私のページの一部だけがこのタグを使用するので、すべてのページにそれらを事前に含めたくありません)