使用 ModelForm 字段作为 upload_to 的参数的正确方法是什么?
What is the appropriate way to use a ModelForm field as an argument to upload_to?
我有一个 ModelForm,其中两个字段是姓氏和名字。我还有一个用于文件上传的文件字段。由于许多不同的人正在上传多个文件,我想根据文件的名称将这些文件分组到一个目录中。
我一直在尝试使用自定义格式的字符串来执行此操作,但到目前为止我收到一个错误,提示有 not enough arguments for format string
,我想知道这是否与表单尚未保存。
我基于表单字段生成文件名的尝试是:
def filename_path(instance, filename):
return os.path.join('applicant_documents/%s_%s/%s' % instance.last_name, instance.first_name, filename)
我模型中的字段定义为:
documents = models.FileField(upload_to=filename_path)
我是做错了什么,还是这不可能?
如错误提示,您需要提供一个元组来代替字符串格式化。
def filename_path(instance, filename):
return os.path.join('applicant_documents/%s_%s/%s' % <b>(instance.last_name, instance.first_name, filename)</b>)
</pre>
我有一个 ModelForm,其中两个字段是姓氏和名字。我还有一个用于文件上传的文件字段。由于许多不同的人正在上传多个文件,我想根据文件的名称将这些文件分组到一个目录中。
我一直在尝试使用自定义格式的字符串来执行此操作,但到目前为止我收到一个错误,提示有 not enough arguments for format string
,我想知道这是否与表单尚未保存。
我基于表单字段生成文件名的尝试是:
def filename_path(instance, filename):
return os.path.join('applicant_documents/%s_%s/%s' % instance.last_name, instance.first_name, filename)
我模型中的字段定义为:
documents = models.FileField(upload_to=filename_path)
我是做错了什么,还是这不可能?
如错误提示,您需要提供一个元组来代替字符串格式化。
def filename_path(instance, filename):
return os.path.join('applicant_documents/%s_%s/%s' % <b>(instance.last_name, instance.first_name, filename)</b>)
</pre>