我有一個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