2015-06-22 86 views
0

我想問一下在ModelForm保存方法中是否有訪問實例id的方法。 (需要一個對象來添加一些額外的數據)。django:新對象的ModelForm訪問實例

def save(self, *args, **kwargs): 
    instance = super(MyForm, self).save(*args, **kwargs) 
    print instance 
    return instance 

而且在所有的情況下,然後再將其保存在數據庫中(所以它不會有一個id,我不能附加對象的話)

+0

這有點奇怪。當我打印kwargs時,它說{'commit':False}。有趣的是爲什麼 –

回答

1

沒有必要重寫我越來越實例ModelForm save()函數。相反,最好使用commit=False來調用保存。 The Django docs explain this in depth,但這裏有一個簡單的例子:

new_object = form.save(commit=False) 
new_object.name = 'Whatever' 
new_object.save() 

通過調用保存與commit=False,你會得到一個對象返回。你可以用這個對象做任何你想做的事情,但是一旦你做了改變,一定要保存它!

+0

好的事情是,我沒有在我看來處理這種形式。這更像是xadmin的形式,我已經添加了一個特定的模型。所以一般我只能調整所有表單方法..但不能訪問視圖 –

+0

嗯,在這種情況下抱歉我的回答沒有幫助。你正在使用的管理庫是否提供了類覆蓋和註冊,[如Django管理員那樣](http://stackoverflow.com/q/12321130/4256689)? – allanlasser