我有一个Django ModelForm与一些初始数据传递给它。到目前为止工作得很好。Django ModelForm初始数据没有显示在重新显示
但是,如果用户没有填写所有数据,或者犯了另一个错误,在重新显示表单时不会再查找初始值。
这里的一个代码段:在forms.py
class TrainingAddForm(forms.ModelForm):
class Meta:
model = TrainingTasks
fields = ('task','ac_reg','date','wo_no')
def __init__(self, *args, **kwargs):
super(TrainingAddForm, self).__init__(*args, **kwargs)
self.fields['task'].required = False
self.fields['task'].widget.attrs['disabled'] = 'disabled'
self.fields['date'].widget = widgets.AdminDateWidget()
def clean_task(self):
return
一种:
def add_trainingtask(request, task_id):
if request.POST:
form = TrainingAddForm(request.POST)
if form.is_valid():
tt = TrainingTasks(
trainee = request.user,
task = Tasks.objects.get(pk=task_id),
date = form.cleaned_data['date'],
ac_reg = form.cleaned_data['ac_reg'],
wo_no = form.cleaned_data['wo_no'],
)
tt.save()
return HttpResponseRedirect('/admin/tot/tasks/')
else:
form = TrainingAddForm(initial = {"task": task_id})
return render_to_response('admin/tot/trainingtasks/add.html', {
'form': form,
'task_id': task_id
},
context_instance = RequestContext(request)
)
如果用户错过填写即日期(这是必须的)的形式将被重新显示显示错误(需要字段),但task_id的基础记录不再显示。 ID仍然存在,还可以保存记录(纠正错误后),这对用户来说几乎是一个令人烦恼的错误。
我想我错过了一些代码,但我无法弄清楚。
问题确实没有意义。你是否说在重新加载页面后,'task'表单域是空的? –
是的,确实发生了这种情况。 task_id仍然存在,但相关记录将不再显示。 – normic