2
A
答えて
2
タグはコンテキストを変更する方法を知っている場合を除きあなたは、(それらは通常xxx as variable
構文利用可能な)ことはできません。そうでなければ、カスタムタグとしてラッパーを書くことができます。
0
これを行うための正しい方法は、独自のタグを記述することです:
あなたが書いたタグがwidthratioと同じロジックを行い
{%がB、CのDの%をwidthratio_add}、それに番号を追加します。
djangoは "add"を超えてテンプレートの基本的な数学を許可していないので、あなたがこれをやろうとしていると思われます。あなた自身のタグを書くときには、少ない引数:
{%のmymathtag広告%}
これを行う方法の一般的な説明のためにこれをチェックしてください:ここでDo math using Django template filter?
0
は私のカスタムテンプレートタグソリューションです:
from django import template
from django.template.defaulttags import WidthRatioNode
register = template.Library()
class WidthRationExtraNode(WidthRatioNode):
def render(self, context):
extra = int(self.extra.resolve(context))
value = int(super(WidthRationExtraNode, self).render(context))
return str(value+extra)
def __init__(self, val_expr, max_expr, max_width, extra):
self.extra = extra
super(WidthRationExtraNode, self).__init__(val_expr, max_expr, max_width)
def widthratioextra(parser, token):
bits = token.contents.split()
if len(bits) != 5:
raise TemplateSyntaxError("widthratio takes four arguments")
tag, this_value_expr, max_value_expr, max_width, extra = bits
return WidthRationExtraNode(parser.compile_filter(this_value_expr),
parser.compile_filter(max_value_expr),
parser.compile_filter(max_width),
parser.compile_filter(extra))
widthratioextra = register.tag(widthratioextra)
あなたのテンプレートでそれを使用することができます:あなたはそれを行う方法がわからない場合は、アプリケーションにカスタムテンプレートタグを追加する
{% widthratioextra a b c d %}
は、比較的容易であり、ここでのマニュアルの関連部分は次のとおりです。https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
0
「as」キーワードをそのまま使用してください:
{結果の%%} {結果| add:2}}
関連する問題
- 1. MacOSとSwift 3 - あるフィルタの結果を別のフィルタに渡す方法
- 2. Djangoカスタムテンプレートタグ(i18n transなど)の結果にフィルタを適用
- 3. templatetagの結果にdjangoフィルタを使用することはできますか?
- 4. リフトのDjangoタグとフィルタ?
- 5. ORMフィルタは結果
- 6. djangoのタグからタグを渡すには?
- 7. フィルタ結果リストビュー内の検索結果
- 8. 式を渡してPythonインタプリタの結果をDjangoに戻すには?
- 9. django templatetagsフィルタに3つの引数を渡すには?
- 10. フィルタ結果が
- 11. フィルタ結果 - XSL
- 12. Django Restフィルタでクエリ結果を制限する方法
- 13. スウィフトでレルム結果を渡すには?
- 14. フィルタpostgresqlのクエリ結果
- 15. FirebaseRecyclerAdapterでのフィルタ結果
- 16. Wireshark保存フィルタの結果
- 17. フィルタInvoke-RestMethodの結果
- 18. フィルタ結果NULLカラムin MySQL結果
- 19. viewbagの結果を表示に渡す
- 20. 関数の結果をプロパティに渡す
- 21. コアデータの結果をUILabelに渡す
- 22. 他のメソッドに結果セットを渡す
- 23. クエリ結果の値をModalに渡す
- 24. 関数の結果をsqlに渡す
- 25. サービス結果を他のコントローラに渡す
- 26. メソッドの結果をコンストラクタに渡すJava
- 27. Ngrxの結果をダムコンポーネントに渡す
- 28. Doctrine - ManytoManyフィルタ結果
- 29. 現在のフィルタ選択をDjangoの別のカスタムSimpleListFilterに渡す
- 30. django rest returnフィルタを組み合わせた結果
これでdjangoはテンプレート言語に "as"代入演算子を追加したので、今すぐ戻ることができます(バージョン1.9?)。下の私の答えを見てください。 – foobarbecue