2015-05-14 68 views
0

默認情況下,我的django模型默認情況下有一個自動生成的ID字段作爲主鍵,默認情況下我的數據庫名爲'ID'。如何添加自動ID到Django模型形式

因爲這樣我的模型有很多其他領域,我有選擇地顯示使用Django模型的形式。雖然這樣做我爲這個自動生成的id字段指定'id',但即使它看起來將其識別爲有效字段,我的表單也不會在HTML上顯示或生成此字段。

我也檢查了做'所有'的領域,但這也沒有引入該特定領域。有趣的是,Django似乎認爲這個字段是'id',因爲如果我將其更改爲'Id'或任何其他隨機值,它會立即給我一個錯誤,例如「未知字段(Id) ..「on my forms.py

這個'id'非常重要,因爲我使用它來在客戶端使用Ajax鏈接和檢索相關對象。如果這不起作用,那麼我將被迫使用另一個字段作爲主鍵。有什麼建議麼?

+0

id字段不應顯示在窗體中,因爲它是一個自動增量字段,因此不能由用戶編輯。 – mastazi

+0

如果您需要使用ajax檢索相關對象,只需讓後端在js變量中打印對象的id即可。你不需要這個身份證。例如'' – mastazi

回答

1

我最終使用'mastazi'建議的解決方法將此id作爲隱藏字段傳遞。

我所做的就是訪問這個隱藏字段並將其生成爲html元素。由於我使用的是crispy_forms佈局,因此我可以在佈局下使用HTML元素。

form_id= self.instance.id 
id_hidden = '<input type="hidden" id="form_id" value=' + str(form_id) +' />' 

我不確定這是一個完美的解決方案,但它的工作原理。

相關問題