Django 在模板中显示基于模板的m2m元素
我有一个简单(相对)的模型,例如: models.pyDjango 在模板中显示基于模板的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
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>