【问题标题】:How getting ManyToManyField("self") in the template?如何在模板中获取 ManyToManyField("self")?
【发布时间】:2013-06-11 02:12:18
【问题描述】:

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

这里是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 })

我为评论中的问题添加了一些内容。

【问题讨论】:

  • 对于更多问题,您需要开始一个新问题...

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


【解决方案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 %}

【讨论】:

  • 对不起,我试过了,但我想我之前没有添加续集......谢谢
  • 如果我想通过“anno”订购续集的元素,我必须如何在模板或视图或模型中编写?谢谢...
  • 在视图中,您将添加一个order_by()
  • 我试过了但是不行因为有film = get_object_or_404(Film, pk=id)
猜你喜欢
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 2012-07-04
  • 2019-08-07
  • 2019-05-24
  • 1970-01-01
相关资源
最近更新 更多