問題タブ [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.
django - モデルから画像を出力するDjangoテンプレートタグ
私は Django を初めて使用し、最初のプロジェクトに取り組み始めたばかりです。私は common.utils.abstact_models.py にあるモードを持っています:
多分これも役に立つでしょう。私は別のモデルを持っています:
MEDIA_URL/uploads/event_photosに写真をアップロードしました
現在のユーザーの写真を出力するには、テンプレート タグを記述する必要があります。10枚の写真としましょう。私はほとんどコードを持っていません。いくつかから始めました。
このテンプレート タグを書く際に何か提案はありますか?
django - Django:カスタムテンプレートの単純なタグは例外を発生させるか、サイレントに失敗する必要がありますか?
公式ドキュメントからこの質問への回答を見つけようとしましたが、見つけることができたのは次のとおりです。
render() が TemplateSyntaxError やその他の例外を発生させてはなりません。テンプレート フィルターがそうであるように、サイレント モードで失敗するはずです。
しかし、上記は実際には質問に答えていません。おそらく、それは通常のカスタムタグに適用され、私の懸念は単純なタグにあるため、さらに混乱しました。
例(および質問自体)を次に示します。
あなたの答えが例外を発生させることである場合、それはTemplateSyntaxError
または他の例外でしょうか?
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 を実行すると、次のメッセージが表示されます。
python - Django でカスタム テンプレート タグの実装に問題がある
いくつかのカスタム テンプレート タグをアプリにもう少し実装して、より適切に構造化しようとしています。厄介な部分は、チュートリアルタイプの投稿に従ってコードを取得したことですが、それでも機能しません。
thisとcurrent_timeに従っていくつかのタグを実装しようとしましたが、理解できないエラーが発生しています。
まず、最新の投稿のフィルター、または私の場合は最新の画面が表示されます
Exception Value: No module named gallery
私のプロジェクトは「S3gallery」と呼ばれ、私のアプリは「ギャラリー」と呼ばれ、私のモデルは「スクリーンショット」と呼ばれます。タグのモデル引数は、ドキュメントで app_name.Model_name を取ると言っているので、私はこれにこだわっています。
カスタム タグ コードは次のようになります。
私はそれを使用してテンプレートにロードしようとしましたが、{% load get_latest gallery.screenshots 5 as recent_screens %}
私が見た例ではタグに「ロード」を使用していませんが、そうするとDjangoはタグを認識しません。私はそれで迷っていますが、正しい道を進んでいると思いますか. これに関するヘルプは大歓迎です:)
python - 分の整数を「X 時間 Y 分」でフォーマットされた文字列に変換する関数を作成する最良の方法は何ですか?
現在、次のような Django カスタム テンプレート フィルターがあります。
いくつかの可能な出力:
' '.join(....split())
トリックは、このソリューションから得たものでした。文字列の最初または最後 (0 時間または 0 分の場合) で余分な文字列を確認するだけでよいことはわかっていますが、それはうまくいくようで、一部の人にとっては正規表現よりも読みやすいかもしれません。人。
また、ほぼ同じif-then
ブロックを 2 回繰り返しているため、DRY に違反していると感じています。みたいなことを考えていた...
if-then
しかし、別のブロックなしで「時間」または「分」を選択する方法がわかりませんでした。また、if-then
1行に2つの略記も少し醜く見えます...
提案やヒントをいただければ幸いです。ありがとう!
django - Django カスタムタグ
複数のパラメーターを渡す必要があるカスタムタグを作成しています。、区切りリストで引数として実行できますが、そのリストにオブジェクトを渡すときに問題に直面しています。
そして私はそれを呼び出して、htmlでこのような引数を渡します
上記のシナリオでは、 pk と 100 、 100 を渡し、正常に動作します。しかし、オブジェクトである別のものを渡す必要があります。{{ image.pk|mytag:"100,100,{{image.name}}"}} しかし、これは別の構文を試してもうまくいきませんでした。
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 callable
にmethod_injected(user)
出くわします; どうすれば修正できますか?
python - 包含タグを介してコンテキスト変数を渡す
利用者の出席の有無を確認する。is_attending
で構文エラーを発生させずにコンテキスト変数をテンプレートに渡すにはどうすればよい'is_attending': context['is_attending']
ですか? このチェックは、基本的に div のスタイリングなどに使用されます。私は何を間違っていますか?
テンプレート:
フィルター.py
ありがとうございました!
django - djangoインクルージョンタグkwargsエラーは「関数は2つの引数を取る」と言います
私は包含タグを書きました、それは文脈と*argsと**kwargsを取ります
レンプレート:
私のコードの何が問題になっていますか?
django - djangoのカスタムテンプレートタグを使用して、テンプレート内の他のブロックにコードを挿入することは可能ですか?
HTML要素を編集可能にするためのコードでラップするカスタムテンプレートタグを書いています。これは、CSSと、データをサーバーに送信して保存するJSによってバックアップされます。
このコンポーネントには、を含める必要があります
ページの下部にあり、
頂点で。
ページテンプレートにはすでに2つの「js」と「css」のテンプレートブロックがあります。
私の質問-私のタグが存在する場合、カスタムテンプレートタグがこれらのスクリプトを関連するページブロックに一度含める方法はありますか?
IE私が入れた:
そして、「js」と「css」のテンプレートブロックには、関連するscript \ linkタグが入力されますか?
(私のページの一部だけがこのタグを使用するので、すべてのページにそれらを事前に含めたくありません)