2016-06-01 9 views
1

フィルタリング用のカスタムテンプレートタグがあります。 get_files_by_typeは完全に機能しますが、今では "除外タイプ"タグも作成したいと考えています。しかし、私は除外が1つ以上のタグかもしれないので、私はこの1つをフォーマットする方法を知らない。django - テンプレートフィルタで複数​​除外

私はこの機能をどのようにして行うのですか?テンプレートをどのようにフォーマットする必要がありますか?つまりテンプレートは?

{% exclude_files_by_type Site.sitefiles_set.all 'Site Plan,'Cabinet Photo' as files %} 

extras.py

from django import template 
    from networks.models import SiteFiles 

    register = template.Library() 

    @register.assignment_tag 
    def get_files_by_type(SiteFiles, type): 
     return SiteFiles.filter(file_type__type=type) 

    def exclude_files_by_type(SiteFiles, type): 

    return SiteFiles.exclude 

答えて

1

これは動作します:

{% exclude_files_by_type Site.sitefiles_set.all "Site Plan, Cabinet Photo" as files %} 

とあなたの割り当てタグ:

@register.assignment_tag 
def exclude_files_by_type(SiteFiles, types): 
    type_list = [type.strip() for type in types.split(',')] 
    return SiteFiles.exclude(file_type__type__in=type_list) 

あなたがすべき除外クエリに多くの種類を追加するにはそれらを引数で区切ってコンマ:

{% exclude_files_by_type Site.sitefiles_set.all "Site Plan, Cabinet Photo, Last Summer, Group Selfies" as files %} 
+0

完璧、ありがとう! – AlexW

関連する問題