python - 如何将图像保存在用户指定的目录中?

标签 python django django-models django-admin django-2.2

我正在使用Django2.2,目前正在学习Django。我创建了一个模型,我必须在其中发布特定事物的图像,并且该模型与用户连接。我想将图像保存在以该特定用户命名的目录中

我有一个自定义用户模型,在其中创建了一个名为“个人资料照片”的字段,并将该个人资料照片保存到以该用户命名的目录中。但是后来我创建了另一个名为“产品”的应用程序,并在那里创建了许多字段,包括图像字段。我试图将该图像保存在该特定用户指定的目录中。

def user_directory_path(instance, filename):
   return 'media/%s/%s' % (instance.username, filename)

 class Products(models.Model):  
   title = models.CharField(max_length=100)
   body = models.CharField(max_length=1000)
   image = models.ImageField(upload_to = user_directory_path)
   product_user = models.ForeignKey(User, on_delete=models.CASCADE)

   def __str__(self):
         return self.title

当我尝试保存产品并发生错误时。

'Products' object has no attribute 'username'

有没有什么成功的方法可以做到这一点。

最佳答案

Products 实例确实没有username 属性。 product_user 有,因此您可以将其更改为:

def user_directory_path(instance, filename):
   return 'media/%s/%s' % (<b>instance.product_user.username</b>, filename)

Note: models have usually singular names, so Product, instead of Products.

关于python - 如何将图像保存在用户指定的目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57231314/

相关文章:

python - Keras 顺序模型中的最大安全批量大小

c++ - 使用 weave.inline 时出现段错误

python - Django 的性能问题

python - 从其他列计算列 django-tables2

django - 为什么 Django 模型字段在遍历关系时会不同步?

python - 如何从 Python 中删除 bash shell?

django - 如何在 Django REST Framework 中的单元测试期间登录用户?

python - 如何在 Django 1.9 中传递 callable

python - 尝试将 Django 模型转换为 XML 时出现 UnicodeEncodeError

python - 分配给未映射到 SQLAlchemy 列的属性时如何引发异常?