循环遍历manytomany字段并返回模板标记

时间:2012-07-12 18:29:33

标签: django many-to-many django-templates

尝试通过演示者字段循环播放事件。然后使用is_presenter将其标记为模板中的演示者。

我想我的问题是:如何正确循环遍历manytomanyfield以返回模板标记?

模型

class Event(model.Model):
    title = models.CharField(max_length=200)
    presenters = models.ManyToManyField(Profile, null=True, blank=True)
    ...

视图

for presenter in event.presenters_set.all():
    is_presenter = True

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

你想要完成的事情并不十分清楚。如果您在模板中执行此操作,则可以执行类似

的操作
{% for presenter in event.presenters.all %}
   {% if presenter.is_presenter %}
     {% # format or do whatever it is you want to do to the presenter here %}
   {% else %}
     {% # this is not a presenter leave alone %}
   {% endif %}
{% endfor %}

如果您的检查演示者更复杂,那么将其保留在您的视图中而不是模板中是很好的。您可以计算哪些主持人实际呈现,在演示者对象上放置一个标志并将其传递给您的模板。