【问题标题】:template many-to-many id django模板多对多 id django
【发布时间】:2012-06-14 14:36:02
【问题描述】:

如何获取多对多对象的 id? 我有三个模型,媒体,图像和幻灯片。 如何通过我的幻灯片对象获取媒体的 ID?

class Media(models.Model):
    CONTENT_TYPE_CHOICES = (
        ('photos', _('Photos')),
        ('videos', _('Videos')),
        ('audio', _('Audio')),
        ('Object360', _('360 Object')),
        ('Object3D', _('3D Object')),

    )


    source = models.FileField(upload_to='magazine')
    filename = models.CharField(max_length=50)
    content_type = models.CharField(max_length=10, choices=CONTENT_TYPE_CHOICES)
    created = models.DateTimeField(auto_now=True)

    class Meta:
        verbose_name = _('Media')
        verbose_name_plural = _('Media')

class ImageComponent(BaseComponent):
    media = models.ForeignKey(Media)
    is_embed = models.BooleanField(default=True)
    is_slideshow =models.BooleanField(default=False)

    def __unicode__(self):
        return u'Image Component'


class SlideshowComponent(BaseComponent):
    image = models.ManyToManyField(ImageComponent)
    is_autoplay = models.BooleanField(default=True)
    is_embed = models.BooleanField(default=True)

    def __unicode__(self):
        return u'Slideshow Component'

在我看来.py 我有:slideshow = SlideshowComponent.objects.all() 在模板中我尝试:

{% for slide in slideshow %}
{{ slide.image.media.id}}

但不起作用..

编辑:如何通过 media.id 在 vi​​ew.py 中访问幻灯片对象

【问题讨论】:

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


    【解决方案1】:

    好吧,因为image 是一个ManyToManyField,它链接到许多 图像(它应该真正称为“图像”)。所以,你需要遍历它:

    {% for slide in slideshow %}
        {% for image in slide.image.all %}
        {{ image.media.id }}
        {% endfor %}
    {% endfor %}
    

    【讨论】:

    • 谢谢,这就是我要找的。如果我通过邮寄方式发送幻灯片 ID,在我看来,我如何删除我收到的幻灯片 ID 的媒体?
    猜你喜欢
    • 2010-11-17
    • 2017-01-16
    • 2015-11-16
    • 2014-05-25
    • 2011-03-25
    • 2013-11-05
    • 2012-12-31
    • 2011-12-08
    • 2011-04-14
    相关资源
    最近更新 更多