2011-07-21 5 views
2

をマーク:のget()exceptsでは、私が独自のマークのモデルのフィールドを持っているユニークな

uid = models.CharField(max_length=255, blank=False, null=False, unique=True) 

私はこのUIDと一致する必要がありますつのプロファイルを取得するために)(getを使用しようとしています:

UserProfile.objects.get(uid=fr_uid) 

問題は、この行は、そのフィールドがユニークなマークされているにもかかわらず、一部のユーザーのためのMultipleObjectsReturned例外を発生させることである:

Line: return self.get_query_set().get(*args, **kwargs) 

Local variables: 
clone [<Profile: John Smith>, <Profile: John Smith>] 
num  2 

私はシェルから同じプロファイルを取得する場合、私は一つだけ取り戻す:今、私は私はおそらくとにかくMultipleObjectsReturned例外を処理する必要があることを

Profile.objects.get(uid='abc1234') 
<Profile: John Smith> 

を理解し、私が今まで複数のオブジェクトを取得する理由私は理解できません一意と記されたフィールドに返されます。

答えて

1

あなたはマネージャを変更しましたか?または、get()を呼び出す前にクエリーセットで何らかのフィルタリングを行っていますか?特に、ORブール検索にQオブジェクトを使用すると、同じオブジェクトが複数回返されることがあります。そのような場合は、質問のdistinct()get()の前に電話してください。