1

Django Inclusion Tagのドキュメントに従ってカスタムテンプレートタグを作成しようとしましたが、6行目でテンプレート構文エラーが発生しましたdef types(Information)

from django import template

register = template.Library()

@register.inclusion_tag('edit.html')
def types(Information)
    informations = Information.objects.all()
    return {'informations': informations}

templatetag.pyファイルはディレクトリ内にあります/templatetags

情報のモデル:

class Information(models.Model):
    name = models.CharField(max_length=20)
    models = models.ManyToManyField('Model')

テンプレート(edit.html):

{% load templatetag %}
<ul>
   {% for information in informations %}
      <li> {{ information }} </li>
   {% endfor %}
</ul>

インクルージョンタグとオブジェクトの作成方法を誤解していますか?アドバイスありがとうございます。

4

1 に答える 1

1

当然のことながら、構文エラーがあります。Pythonでブロックを開始するものと同様に、関数定義の最後にはコロンを付ける必要があります。

def types(information):

また、何らかの理由で引数に名前を付けたことにも注意してください。Informationこれにより、クラスInformationが非表示になります。実際のパラメーターとして渡すオブジェクトはすべてobjects.all()クエリのベースとして使用されるため、機能しない可能性があります。

于 2012-07-15T04:50:01.493 に答える