跟进有关反向多对多查找的帖子,我想知道我的项目/图片问题的最佳实践是什么:
我想注册多个项目,用户可以上传(但不是必需的)多个项目图片。
因此我定义了以下两个类:
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)
因此,对于每个用户,我都会在“仪表板”中显示他们的项目
projects = Project.objects.filter(user = logged_user)
它返回带有名称等的项目列表。
现在我想在仪表板表中显示项目的图片。因此,我有两个问题正在寻求建议:
1)课程设置实际上是最好的方法吗?我拆分了如上所示的类,以允许用户在每个项目中上传多张图片。会有更好的方法吗?
2) 如果有图片,如何在模板中显示项目的第一张图片?我是否需要对与项目对应的每个 ProjectPicture 对象进行查询?或者是否有针对该问题的优雅 Django 解决方案?