У меня есть простая форма в Django, которая выглядит примерно так:
class SearchForm(forms.Form):
text = forms.CharField()
from = forms.DateField()
until = forms.DateField()
Что не получается с 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_']
Есть ли более элегантный способ иметь поле формы с именем from
или любое другое ключевое слово Python?