首页 > 解决方案 > 如何在 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")

标签: djangodjango-models

解决方案


您已经在几行之前创建了您的产品;你只需要使用它。

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()

推荐阅读