Django:访问temp中的manytomy(reverse)

2024-10-01 00:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

继关于reversed many-to-many look ups的帖子之后,我想知道解决我的项目/图片问题的最佳实践是:

我想注册一些项目和用户可以上传(但不需要)多个项目图片。在

因此,我定义了以下两个类:

from easy_thumbnails.fields import ThumbnailerImageField

class Project(models.Model):
    name = models.CharField(_('Title'), max_length=100,)
    user = models.ForeignKey(User, verbose_name=_('user'),)
    ...

class ProjectPicture(models.Model):
    project = models.ForeignKey('Project')
    picture = ThumbnailerImageField(_('Image'),
            upload_to='user/project_pictures/', null=True, blank=True,)

    def __unicode__(self):
        return u'%s\'s pictures' % (self.project.name)

因此,对于每个用户,我将通过在“仪表板”中显示他们的项目

^{pr2}$

它返回带有名称等的项目列表

现在我想在仪表板表中显示项目的图片。因此,我有两个问题需要咨询:

1)课程设置实际上是最好的方法吗?我拆分了上面所示的类,允许用户在每个项目中上传不止一张图片。有更好的方法吗?在

2)如果有图片,如何在模板中显示项目的第一张图片?我需要对每个项目对应的ProjectPicture对象进行查询吗?或者有一个优雅的Django解决方案来解决这个问题?在


Tags: to项目用户nameprojectmodelmodels图片
1条回答
网友
1楼 · 发布于 2024-10-01 00:27:24

不是多对多关系,你用外键。这是正常的设置。要访问模板中的第一张图片,您可以使用{{ project.projectpicture_set.all.0 }},它将生成额外的查询。要避免它,请使用prefetch_related。在

相关问题 更多 >