嘿,我已經搜索過,做這個(特別是這個問:Django edit form based on add form?),但我不能得到它的工作。如何使用相同的django表單編輯/添加對象?
我遇到的問題是表單總是會創建一個新的對象,而不是修改現有的對象。
這是我的代碼:
def new_task(request, task_id=None):
if task_id is not None:
task = Task.objects.get(pk=task_id)
else:
task = Task()
if request.method == 'POST': # If the form has been submitted...
form = TaskForm(request.POST, instance=task)
if form.is_valid():
form.save();
return tasks(request, 'Task #%s created successfully.' % (task.id))
else:
form = TaskForm(instance=task)
return custom_render('user/new_task.html',
{'form': form},
request);
對我失去了我任何線索?謝謝
編輯:添加表單定義。
class TaskForm(ModelForm):
description = CharField(max_length = 1500,
widget= forms.Textarea(attrs={'class':'task-description'}),
required=True)
class Meta:
model = Task
只是爲了添加更多信息,表單在編輯時會正確填充對象的數據,添加新表單時顯示爲空。除此問題之外,所有正常工作。 – Nacho 2010-03-06 22:04:57
你是否覆蓋了表單保存方法?你能顯示錶單的定義嗎? – 2010-03-06 22:34:58
我剛剛添加了表單def。不,我沒有覆蓋保存方法... – Nacho 2010-03-06 22:45:05