Django 1.0.2 ModelForm 的地雷

'RelatedObject' object has no attribute 'unique' thrown by ModelForm validation

今天在使用 Django ModelForm 的時候採到一個地雷, 秀出了上面這一串訊息, 然後是發生在 form.is_valid() 的時候, google 了一下, 原來是因為我在 form 裡面放了一個不屬於 model 的欄位。 可以看看 django trac 的這個 ticket

簡單舉例一下, 我有 Song model 跟 SongStyle model 這兩個 model, 而 SongStyle 當然要 form 秀出來給使用者填選, 所以我在 Song 的 ModelForm 加上了一個 song_styles 的 ChoiceField, 結果就出現了錯誤。( SongStyle 有個 ForeignKey 指向 Song )

不過這個問題 django 1.1 已經解決了, 1.0.2 還是有這個問題, 如果不想用 django 1.1 的話 … 看看這裡自己 patch 吧。

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!