Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:访问模板中的多对多(反向)_Python_Django_Many To Many_Thumbnails_Reverse - Fatal编程技术网

Python Django:访问模板中的多对多(反向)

Python Django:访问模板中的多对多(反向),python,django,many-to-many,thumbnails,reverse,Python,Django,Many To Many,Thumbnails,Reverse,在发布关于的帖子之后,我想知道解决我的项目/图片问题的最佳做法是: 我想注册一些项目,用户可以上传(但不是必需的)多个项目图片 因此,我定义了以下两个类: from easy_thumbnails.fields import ThumbnailerImageField class Project(models.Model): name = models.CharField(_('Title'), max_length=100,) user = models.ForeignKey

在发布关于的帖子之后,我想知道解决我的项目/图片问题的最佳做法是:

我想注册一些项目,用户可以上传(但不是必需的)多个项目图片

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

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)
因此,对于每个用户,我都会通过

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

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

1) 课程设置实际上是最好的方法吗?我将如上所示的类进行了拆分,以允许用户在每个项目中上载多张图片。有没有更好的办法


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

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

绝对正确,它不是多对多关系。谢谢你的建议!
projects = Project.objects.filter(user = logged_user)