gpt4 book ai didi

python - Django 文件字段 : how to set default value (auto-create empty file)?

转载 作者:行者123 更新时间:2023-11-28 16:54:02 24 4
gpt4 key购买 nike

我有这样一个模型:

class MyModel(models.Model):
name = models.CharField(max_length=255)
code = models.FileField()

当提交一个新的 MyModel 时,我希望允许 code 字段留空,在这种情况下,我需要 Django 创建一个空文件(具有任意名称)。

问题是:正确的方法是什么?

我在文档中找不到任何相关内容,所以我在将其提供给 MyModelForm() 之前查看手动编辑 request.FILES,但这对我来说看起来像是一个肮脏的 hack...有什么想法吗?

谢谢。

最佳答案

我会将输入的代码存储在 CharField 中,然后创建一个单独的函数来访问模型,如果代码不包含任何有害方法,则将其写入文件。

这负责创建文件(因为空白的 CharField 将简单地输出到一个空文件)并允许委托(delegate)给安全检查器。您的设置将类似于以下内容:型号:

class MyModel(models.Model):
name = models.CharField(max_length=255)
code = models.CharField(MAX_FILE_LENGTH)

查看:

def Submit_Code(request):
#Create MyModel using POST data
process_input_file(NEWLY_CREATED_MODEL_NAME)
return HttpResponse("Upload Successful")

def process_input_file(modelName):
#assuming unique name. Use "id=" instead if needed.
mm = MyModel.objects.get(name=modelName)
if passes_security_checks(mm.code):
f = open(mm.name, "r")
f.write(mm.code)
f.close()

编辑新 View :

def Submit_Code(request):
mm = MyModel()
mm.name = request.POST.get('name')
f = open(mm.name,"r")
f.write(request.POST.get('code')
f.close()
#then associate the newly created file with the FileField however you want
#passing through authentication/checking if need be.
return HttpResponse("Upload Successful")

关于python - Django 文件字段 : how to set default value (auto-create empty file)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3224098/

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