2012-04-30 28 views
0

我是初學者python Django。我有一個JSON格式的字符串,如python,django - 我可以直接在視圖中調用保存嗎?我有陣列,只有一些鍵需要保存,所以自動化或手動?

jsondict = {"name": "value", "pwd": "pwdvalue", "email": "[email protected]"} 

我使用json.loads(STR)

從上面的字典,我想只保存命名轉換爲字典和PWD和許多其他人除了一些鑰匙。所以,我這樣做的意見:

u=users(name=jsondict['name'], pwd=jsondict['pwd']) 
u.save() 

我的代碼質量好嗎?或者我需要以任何其他方式做到這一點,以獲得高質量。
在我的問題,自動或手動的意義上,我必須直接插入一些詞典或manullay必須做的,因爲我在代碼中顯示?
將提供更多的信息,如果有必要
感謝

+0

如果你只是這樣做,會發生什麼:user(** jsondict) – jgomo3

+0

@ jgomo3:您將從意外的關鍵字參數中獲得TypeError。 –

回答

2

你有一個不錯的選擇是向下過濾你的字典,然後用**把它解壓到作爲關鍵字參數。

user_fields = {"name", "pwd"} 
jsondict= {"name":"value","pwd":"pwdvalue","email":"[email protected]"} 
userdict = {key: value for (key, value) in jsondict.items() if key in user_fields} 
u = users(**userdict) 

我們使用dict comprehension過濾掉一切,但我們想要的值(存儲在設定user_fields)。

+0

感謝您的回答。是下一行u.save()?並沒有寫入save()的自定義方法嗎? –

+0

這完全依賴於Django以及'users()'是什麼。這不會影響類的功能。如果你希望它像之前的代碼一樣工作,是的,你需要做'u.save()'。 –

+0

或者根據Burhan Khalid的評論,顯然'u = User.objects.create(** userdict)'[將會像創建,然後保存一樣(https://docs.djangoproject.com/en/dev/) REF /模型/查詢集/#創建)。 –

相關問題