python - 为什么无法获取Django模型主键的值?
PHPz
PHPz 2017-04-18 10:08:40
0
3
469
PHPz
PHPz

学习是最好的投资!

全部回覆(3)
PHPzhong

Django 無需「明確定義主鍵」

它會自動為表格新增一個 id 欄位( 主鍵, 自增 )

可以考慮把你手動定義的主鍵去掉

伊谢尔伦

需要看清楚,你的post物件是PostForm()而非Post(),你的PostForm表單處理物件有id初始值,但是你傳來的request.POST值有沒有id值呢,沒有就自然是None了,你這個post如果是Post()對象,那一定是有id值的

PHPzhong

有一個資訊不詳細沒給出,就是 PostForm 你是如何定義的。

如果你這麼定義PostForm,通过调用PostForm(request.POST).save(),透過呼叫PostForm(request.POST).save()是可以得到你想要的結果的。

class PostForm(forms.ModelForm):

    class Meta:
        model = Post
        

不過你的PostForm絕對不是這麼定義的,因為post = form.save(request.user)是错误的使用方法,ModelFormsave方法只有一个参数,就是commit = False 或者 commit=True,表示是否將資料儲存到資料庫,預設True.

源碼請見連結

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板