2017-12-24 14 views
3

のリストから重複を削除:Django comparing model instances for equalityポストに基づいてモデルインスタンス

を、私は、インスタンスの私のリストから重複を削除しようとしています(まだ保存されていないと私はあることを彼らの「ID」を前提としなし)

コードは次のとおりです。

a = list() 
a.append(relation_list.pop()) 
for x in relation_list: 
    duplicate = False 
    for z in a: 
     if z is x: 
     #or if z.attrib1 == x.attrib1 and z.attrib2 == x.attrib2: 
      duplicate = True 
    if not duplicate: 
     a.append(x) 

しかし、はattribsはラインが= Trueのは実行されない飽きない複製等しい与えられました。

私には何が欠けていますか?

これを達成するより効率的な方法はありますか? (「relation_listに」使用this postからインスピレーションを得たのいずれかに動作しません

+0

あなたは 'relation_list'が最初の場所に移入されたか –

+0

必ず説明することができます。私は4つのモデルを持っていますアクション、基準、危険と関係を言うことができます関係は条件に格納された条件に基づいてアクションに関連する危険の強さを保存します したがって、 'Exist'リレーションシップを格納する(the_relation.Action_id、the_relation.Danger_id、the_relation.Intensity @DanielRoseman – Azee

+0

モデルと計算の複雑さのためにExi st '注釈(他の中でも)は、同一の重複関係を返します。 一意の値を保存するだけです。 – Azee

答えて

2

これを試してみて、私は結果を知っている:。?

a = list() 
for x in relation_list: 
    if x.attrib1 not in [z.attrib1 for z in a]: 
     a.append(x) 
+1

あなたは私の一日を作った! @ahmad – Azee

関連する問題