我想创建一个函数,每次用户上传图像时,都会使用其用户名(designer_name)创建一个新文件夹,并将每个标题与每个上传的图像相关联吗?
如果这是最好的方法?
模型
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})
upload_to=…
Note:class Post(models.Model): def upload_design_to(self, filename): return f'{self.designername}/{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})
确实not存储字符串的字符串表示形式(或名称)。列中的引用对象,它存储记录的主键在
ForeignKey
字段后缀为_id
的列中引用。因此ForeignKey
通常以ForeignKey
后缀结尾。你可能想要考虑将_name
字段重命名为designer_name
。