django - 如何在 django 中将文件保存到外键模型
问题描述
我正在使用 django 模型来保存用户上传的图像。我希望将每个图像存储在 productimage 模型中,该模型是产品模型的外键模型,产品模型是用户模型的外键模型。我的意思是:
用户 -----> 产品 ------> 产品图片
我想创建 productimage 模型的新实例,但似乎无法弄清楚如何创建,因为它是另一个外键的外键。我不知道如何在外键中创建目标外键。例如我试过:
request.user.product.productimage.create()
request.user.product_set.productimage_set.create()
request.user.product.productimage_set.create()
似乎没有任何东西可以创建 productimage 模型的新实例。
class product(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
product_title = models.CharField(max_length=100, blank=True)
product_price = models.CharField(max_length=30, blank=True)
product_description = models.CharField(max_length=1000, blank=True)
class productimage(models.Model):
product = models.ForeignKey(product, on_delete=models.CASCADE)
product_images = models.FileField(blank=True)
def add(request):
if request.method == "POST":
product_title = request.POST.get("product_title")
product_price = request.POST.get("product_price")
product_description = request.POST.get("product_description")
request.user.product_set.create(product_title = product_title,product_price =product_price, product_description = product_description,)
for file in request.FILES.getlist("filepond"):
product_images = file
request.user.product_set.productimage_set.create()###trying to create a new instance of productimage model for each file
return render(request,"main/add.html")
解决方案
您已经在几行之前创建了您的产品;你只需要使用它。
product = request.user.product_set.create(product_title = product_title,product_price =product_price, product_description = product_description,)
for file in request.FILES.getlist("filepond"):
product_images = file
product.productimage_set.create()
推荐阅读
- jquery - jQuery DataTable 按钮在添加表格行时不显示
- javascript - 检测阵列变化的最佳方法是什么?
- matlab - 从行尾开始文本扫描
- variables - 是否可以在 SASS 中动态导入路径?
- postgresql - ("
") 在 EDBPOSTGRESQL 中调用过程 - c# - 模拟扩展方法 IElasticClient
- python - 仅包含前 n 个类别的 sns stripplot
- python - 填充列表 Python 时出现 IndexOutOfRange 错误
- python - 在 if 子句中使用 numpy.float32 值的问题
- go - Gin 框架无法从 Postman 获取数据