Django 创建每次上载图像时打开新文件夹的函数
我想创建一个函数,在这个函数中,每当用户上传一个图像时,都会使用他们的用户名(designer_name)创建一个新文件夹,并将每个标题与每个上传的图像相关联,这是可能的吗 如果是的话,最好的方法是什么 模型Django 创建每次上载图像时打开新文件夹的函数,django,Django,我想创建一个函数,在这个函数中,每当用户上传一个图像时,都会使用他们的用户名(designer_name)创建一个新文件夹,并将每个标题与每个上传的图像相关联,这是可能的吗 如果是的话,最好的方法是什么 模型 class Post(models.Model): designer_name = models.ForeignKey(User, on_delete=models.CASCADE) design = models.ImageField( blank=Fal
class Post(models.Model):
designer_name = models.ForeignKey(User, on_delete=models.CASCADE)
design = models.ImageField(
blank=False, null=True, upload_to='new designs')
title = models.CharField(max_length=100)
date_posted = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("score:post-detail", kwargs={"pk": self.pk})
可以,您可以定义一个函数,指定图像应上载到的位置,并将其设置为:
class Post(models.Model):
def上传到(自我,文件名):
返回f'{self.designername}/{self.title}/{filename}'
设计器\u name=models.ForeignKey(用户,on\u delete=models.CASCADE)
设计=模型.ImageField(
blank=False,null=True,upload\u to=upload\u design\u to)
title=models.CharField(最大长度=100)
发布日期=models.DateTimeField(默认值=时区.now)
定义(自我):
返回自己的标题
def get_绝对_url(自身):
返回反向(“score:post-detail”,kwargs={'pk':self.pk})
注意:外键
不存储
在列中引用的对象,它存储所引用的记录的主键
列中的引用,其\u id
后缀为外键
字段。所以
ForeignKey
s通常不以\u名称
后缀结尾。你可能想
考虑重命名<代码>设计器名称> <代码>字段> <代码>设计器< /代码> ./p>
非常感谢。只是在函数{self.title}的返回中。。。。。非常感谢。
class Post(models.Model):
def upload_design_to(self, filename):
return f'{self.designername}/{self.title}/{filename}'
designer_name = models.ForeignKey(User, on_delete=models.CASCADE)
design = models.ImageField(
blank=False, null=True, upload_to=upload_design_to)
title = models.CharField(max_length=100)
date_posted = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("score:post-detail", kwargs={'pk': self.pk})
def new designs(instance, filename):
file_path = 'blog/{author_id}/{title}-{filename}'.format(
author_id=str(instance.author.id), title=str(instance.title), filename=filename)
return file_path