我在Django中有一个简单的表单,看起来像这样:
class SearchForm(forms.Form):
text = forms.CharField()
from = forms.DateField()
until = forms.DateField()
Run Code Online (Sandbox Code Playgroud)
哪个因SyntaxError而失败,因为它from是一个Python关键字.
我宁愿不改变字段的名称; 它比任何替代方案都更合适,而且我对最终用户的看法非常挑剔.(表单使用'GET',因此字段名称在URL中可见.)
我意识到我可以使用某些东西,比如说from_,但我最初认为可能有某种方法可以明确地提供字段名称,对于这样的情况.(例如,通过name='whatever'在Field构造函数中提供参数.)它没有.
目前我正在使用动态表单生成来解决问题,这不是太糟糕,但它仍然是一个黑客...
class SearchForm(forms.Form):
text = forms.CharField()
from_ = forms.DateField()
until = forms.DateField()
def __init__(self, *args, **kwargs):
super(SearchForm, self).__init__(*args, **kwargs)
self.fields['from'] = self.fields['from_']
del self.fields['from_']
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方式来命名一个表单字段from,或任何其他Python关键字?
不要在关键字之后命名,即使你找到了解决办法,也可能会在以后咬你.
请使用同义词或添加前缀/后缀.
例如
start- > finish
begin- > end
date_from- >date_to
| 归档时间: |
|
| 查看次数: |
1092 次 |
| 最近记录: |