Форум сайта python.su
Помогите, а то гугление уже не помогает :) Имеется: Django 1.1.1, dev-server, Opera 10.10, Firefox 3.6.
Есть форма с полем “num_akt”, в котором содержимое устанавливается по умолчанию в вычисляемое значение (номер акта - каждый раз выбирается максимум за текущий год и прибавляется единица).
Последовательность действий:
1. При начальном открытии формы срабатывает нормально. Заполняем форму, сохраняем. Значения записываются в базу.
2. Входим в строку адреса, жмем Enter. Ненужные значения очистились, значение в нужном поле не изменилось(хотя должно было увеличиться на 1).
3. Жмем Enter в строке адреса еще раз - значение меняется (иногда со второго раза).
Кто-нибудь сталкивался с таким поведением? Куда копать?
Форма:
class pidpr_form(ModelForm):
def __init__(self, *args, **kwargs):
if kwargs.has_key('akt_new'):
akt_new = kwargs.pop('akt_new')
super(pidpr_form, self).__init__(*args, **kwargs)
try:
self.base_fields['num_akt'].initial = akt_new
except:
pass
class Meta:
model = pidpr
...
формирование akt_n
...
form = pidpr_form(akt_new=akt_n)
...
return render_to_response('pidpr.html',{
'form':form,
})
...
Отредактировано (Фев. 28, 2010 08:57:23)
Офлайн
Пробовал, но значение в форму у меня при такой записи не передается вообще - поле пустое.
Пробовал еще так:
в forms.py
num_akt = forms.IntegerField(min_value=1, max_value=10000, label="Номер акту", initial=akt_n)
Отредактировано (Фев. 28, 2010 09:00:06)
Офлайн
Сорри. Туплю. Надо внимательно читать доки. Для формы ModelForm все работает так:
...формирование akt_n...
init_pidpr = pidpr(num_akt=akt_n)
form = pidpr_form(instance=init_pidpr)
Офлайн