Django - 如何设置 forms.FileField 名称
Posted
技术标签:
【中文标题】Django - 如何设置 forms.FileField 名称【英文标题】:Django - how to set forms.FileField name 【发布时间】:2012-03-20 23:14:54 【问题描述】:我想在我的管理表单中为 FileField 对象设置自定义名称,以便它的 html 名称属性不等于我的实例字段名称。
class MyAdminForm(forms.ModelForm):
file_field = forms.FileField()
def __init__(self, *args, **kwargs):
if kwargs.has_key('instance'):
instance = kwargs['instance']
self.initial['image_file'] = instance.file_field
使用此代码,我得到 并且我想要做的是将其 name 属性设置为其他内容。
编辑:
我接受了下面的答案,但我还有另一个问题。是否可以构造可变数量的 FileField 对象?我的意思是 - 如果我现在想要其中的 4 个,但在某些情况下只有一个怎么办?我是否必须将所有这些声明为类字段,例如 file_field1、file_field2 等等,或者是否可以将它们添加到字典中,例如: 'file_field1: FileField(), 'file_field2' : FileField() - 我真的试过了,但出错了……
【问题讨论】:
英语不是您的母语。 避免长句,例如“我想在我的管理表单中为 FileField 对象设置自定义名称,以便它的 html 名称属性不等于我的实例字段名称。”。坚持主语+动词+补语。你的问题会突然变得更有意义! 这里是上面的一些提示.. :) blog.***.com/2010/10/asking-better-questions 和@jpic 提到的你会得到更好的答案.. 非常感谢您的语言建议! :) 【参考方案1】:HTML 中的 name 属性与表单定义中的 name 相同,因此如果您不希望它为 file_field
,请不要将其称为 file_field
。
class MyAdminForm(forms.ModelForm):
new_field = forms.FileField()
# Rest of the form goes here
【讨论】:
如果没有别的办法,那好吧,我就这么办,但是是不是不能声明FileFields的字典? 是的,可以动态创建表单字段。见***.com/questions/5478432/…以上是关于Django - 如何设置 forms.FileField 名称的主要内容,如果未能解决你的问题,请参考以下文章
Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)
我可以在 Django 设置中定义类吗?如何在测试中覆盖这些设置?