ジャンゴ-70 pythonのテスト開発を。カスタムフィルタフィルタ

序文

Djangoのテンプレートは、その後、私たちは、フィルタのいくつかを記述する必要が内蔵されたフィルタいくつかは、内蔵の場合、フィルタの需要を満たすことができない、いくつかの共通のニーズを満たすための多くを持っています。

カスタムフィルタ

まずappディレクトリにtemplatetagsを作成して、注意がtemplatetagsディレクトリでなければならない、という名前Biexiaは最後の失敗しました!
Myfilter.pyは、そのファイルが、A名前を付けることができ、新しいファイルを作成します。

まず、アプリがすでに上setting.py内部に登録されていることを確認

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',              # 内置后台管理系统
    'django.contrib.auth',               # 内置用户认证系统
    'django.contrib.contenttypes',       # django的ORM框架
    'django.contrib.sessions',           # session会话功能
    'django.contrib.messages',           # 消息提示功能
    'django.contrib.staticfiles',        # 查找静态资源路径
    'yoyo',                          # 你自己的app应用
]

フィルタを書きます

myfilter.pyは、次の形式のフィルタ名、名称=「置き換え」で独自の定義ファイルを作成するには、これはフィルタの独自の定義で置き換えます。
次の関数〜引数の文字を指定した置換値の関数であります

from django import template

register = template.Library()

@register.filter(name='replace')
def myreplace(value, arg):
    return value.replace(arg, '~')

テンプレートの参照

テンプレート内のフィルタのカスタムを参照する場合は、最初にフィルタファイルの独自の定義をロードするためにロードする必要があります

{%負荷myFilterを%を}

{{こんにちは|置き換える:「!」}}文字列ハローに対応して機能です!置き換え〜

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="referrer" content="no-referrer" />
    <title>Title</title>
</head>
<body>

{% load myfilter %}

<div>
    <p><span>hello:</span>{{ hello | replace:"!" }}</p>
</div>

</body>
</html>

おすすめ

転載: www.cnblogs.com/yoyoketang/p/11809555.html