【发布时间】:2014-06-17 15:05:34
【问题描述】:
版本: 蟒蛇 3.4 Django 1.7
我创建了一个画廊应用程序,其中包含不同的画廊和他们自己的图像。
我的模型:
from django.db import models
class Gallery(models.Model):
title = models.CharField(max_length=200)
pub_date = models.DateTimeField('publish date')
def __str__(self):
return self.title
class Image(models.Model):
title = models.CharField(max_length=200)
gallery = models.ForeignKey(Gallery)
pub_date = models.DateTimeField('publish date')
file = models.ImageField(upload_to='img/gallery/'+str(Gallery.objects.get(pk=str(gallery)).id)+'/')
def __str__(self):
return self.title
您会看到我的 图库 和 图片 模型。在后端创建 Image 时,它应该在 "img/gallery/gallery_id"
中动态创建一个文件夹我的问题是 Image.gallery 在这里是 ForeignKey,我无法将其转换为 int 或 string 来使用它。是否有一个函数可以使用我的 Image 对象中的 ForeignKey 从我的 Gallery 对象中获取 ID?
我的解决方案
Gallery.objects.get(pk=str(gallery)).id
不工作。
顺便说一句:我认为外键总是像 id 一样的 int?不是吗?
【问题讨论】:
-
您可以通过隐藏字段 FOO_id (在您的情况下为gallery_id)直接访问id。 Gallery 字段应该是一个对象,但在 Django 查询中有一个快捷方式(又名魔法),允许您将其作为 id / pk 上的过滤器传递而不转换它:
Gallery.objects.get(id=gallery).id
标签: python django foreign-keys