Django - 使用当前用户上传图像(Loggedin)

时间:2016-06-01 02:42:54

标签: python django django-models django-views

如何将图像保存在特定文件夹中,具体取决于谁是Loggedin? 我的程序为每个注册用户创建一个文件夹 登录后,他们可以上传一些图片。

问题是当我尝试保存图像时,我需要指定上传的路径(使用userID)

示例:

如果Bob是Loggedin,您将在此处上传图片:space / users / bob123 / example.png

模型

class StudentPhotos(models.Model):
    image = models.ImageField(upload_to= ??? , default="", null=True)
    image_id = models.CharField(max_length = 15, null=False, editable=False, default=id_generator, primary_key=True)
    user_id = models.CharField(max_length = 15, null=False, default="")

以这种方式保存它的主要原因是能够从我的管理站点引入用户的所有图像

1 个答案:

答案 0 :(得分:0)

假设您的模型如下(仅限演示):

class StudentPhotos(models.Model):
    image = models.ImageField(upload_to=name)
    user  = models.ForeignKey(User)

此处名称(upload_to = name)的功能如下:

def name(instance, fname):
     return '/'.join(instance.user.get_full_name(), fname)

我个人使用简单缩略图,以便在我的模型中使用图像字段,并且我能够按照上面给出的方式使用名称功能。

希望,您可以推断出一些相关信息,并能够为您的需求提供更好的解决方案。