如何在模板中获取ManyToManyField(“self”)?

时间:2013-06-14 12:16:53

标签: django django-models django-templates self django-orm

我不知道如何在模板中获取续集的值。

这里是models.py

class Anno( models.Model ):
    anno = models.CharField( max_length=4 )
    def __unicode__(self):
        return self.anno
    class Meta:
        verbose_name_plural = "Anni"

class Film( models.Model ):
    titolo = models.CharField( max_length=39 )
    trama = models.TextField( max_length=1000 )
    anno = models.ForeignKey( Anno )

    generi = models.ManyToManyField( Genere_Film )


    sequels = models.ManyToManyField( "self", blank=True )


    def __unicode__(self):
        return self.titolo + " " + self.trama
    class Meta:
        verbose_name_plural = "Films"

在我使用的模板中:

{% for generi in film.generi.all %}{{ generi.genere }}{% endfor %}

但现在我不知道我要在模板中写什么。请帮帮我。

这里是views.py

def film(request, id):
    film = get_object_or_404( Film, pk=id )
    return render_to_response('Film.html', { 'film': film })

我在评论中添加了一些问题。

1 个答案:

答案 0 :(得分:1)

它的工作方式相同:

{% for sequel in film.sequels.all %}{{ sequel.titolo }}{% endfor %}

如果没有续集,请使用{% empty %}

{% for sequel in film.sequels.all %}
   {{ sequel.titolo }}
{% empty %}
   <p>No sequels</p>
{% endfor %}