gpt4 book ai didi

python - 在 Django 中创建新模型时动态将文件放入 s3

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:42 25 4
gpt4 key购买 nike

当我在 Django 中创建新模型“Truck”时,我的字段之一是 FileField,它将文件保存到 S3。我想将此文件放在与我的模型实例匹配的文件夹中。

当我保存卡车的新实例(例如“Red Truck”)时,我想将该文件上传到 S3 中名为“Red Truck”的文件夹。

这是为了保持我公司的文档整洁。

from django.db import models
from django.db.models.signals import pre_save
from django.dispatch import receiver
from django.template.defaultfilters import slugify


class Truck(models.Model):
@staticmethod
def pre_save(sender,instance,**kwargs):
s3_truck_name = self.truck_number

truck_number = models.CharField(max_length=20)
vin = models.CharField(max_length=17)
registration = models.FileField(upload_to=f'trucks/{s3_truck_name}')
cab_card = models.FileField(upload_to=f'trucks/{s3_truck_name}')
title = models.FileField(upload_to=f'trucks/{s3_truck_name}')

def __str__(self):
return f'Truck: {self.truck_number}'

pre_save.connect(Truck.pre_save, Truck)




NameError: name 's3_truck_name' is not defined

最佳答案

def user_directory_path(instance, filename): 
#file will be uploaded to MEDIA_ROOT/user_<id>/<filename>
return 'user_{0}/{1}'.format(instance.user.id, filename)

class MyModel(models.Model): upload = models.FileField(upload_to=user_directory_path)

关于python - 在 Django 中创建新模型时动态将文件放入 s3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57530644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com