搜尋

首頁  >  問答  >  主體

python - 为什么无法获取Django模型主键的值?

PHPzPHPz2918 天前475

全部回覆(3)我來回復

  • PHPz

    PHPz2017-04-18 10:10:40

    Django 無需「明確定義主鍵」

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

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

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:10:40

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

    回覆
    0
  • PHPz

    PHPz2017-04-18 10:10:40

    有一個資訊不詳細沒給出,就是 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.

    源碼請見連結

    回覆
    0
  • 取消回覆