Django 在模板中显示基于模板的m2m元素

Django 在模板中显示基于模板的m2m元素,django,django-templates,Django,Django Templates,我有一个简单(相对)的模型,例如: models.py class Author( models.Model ): first_name = model.CharField( max_length=30 ); last_name = model.CharField( max_length=30 ); something = model.FloatField( ); class Book( models.Model ): name = model.CharFiel

我有一个简单(相对)的模型,例如:

models.py

class Author( models.Model ):
    first_name = model.CharField( max_length=30 );
    last_name = model.CharField( max_length=30 );
    something = model.FloatField( );

class Book( models.Model ):
    name = model.CharField( max_length=200 );
    authors = model.ManyToManyField( Author );
模板/book.html

{% for book in books %}
    {{ book.name }}

    <div id="authors">
    {% for author in book.authors.all %}

        {{ author|template:"author_short.html" }}  *** unsure here

    {% endfor %}
    </div>

{% endfor %}
{%forbook-in-books%}
{{book.name}
{book.authors.all%中的作者为%s}
{{author}模板:“author_short.html”}***此处不确定
{%endfor%}
{%endfor%}
author_short.html(例如…)


姓名:{{first_Name}}{{last_Name}}
我想能够做的是,根据一些模板在内部循环中格式化作者的信息。看来我应该能做那种事

最后,我想做的是能够使用ajax调用添加一个作者(格式相同!)。我知道我可以通过ajax添加,但是我必须在两个地方有格式定义,因此没有那么枯燥(除非我缺少另一种方法,这是很有可能的)。

您可以使用

加载模板并使用当前上下文呈现它。这是一种在模板中“包含”其他模板的方法

author\u short.html
仍然可以是:

<div style="border: 1px solid #f00;">
    Name: {{ first_name }} {{ last_name }} 
</div>

姓名:{{first_Name}}{{last_Name}}

可以重复使用

D'oh,那很容易。认真地哇!不知道我怎么会错过。
{% for author in book.authors.all %}

    {% include "author_short.html" %}

{% endfor %}
<div style="border: 1px solid #f00;">
    Name: {{ first_name }} {{ last_name }} 
</div>