2017-11-23 8 views
0

unique_together制約が一方向にのみ動作しますユニーク制約、双方向

class Relationship(models.Model): 
    user1 = models.ForeignKey(User) 
    user2 = models.ForeignKey(User) 

    class Meta: 
     unique_together('user1', 'user2') 

例えば、このモデルを取ります。同様の関係は、2つの異なる方法で表現することができます。

USER1 =はFoo

はuser2 =バー

USER1 =バー

はuser2 =はFoo

がそれですunique_togetherを使用して、データベースレベルで双方向制約を適用できますか?

編集:そうでない場合、どのようにこの制約を適用できますか?

+0

djangoのルールに基づいて、上記の例で双方向が異なるため、双方向制約を適用することはできません。 –

+0

ありがとうございました。どのようにこれを強制することができますか? –

+0

[Djangoカスタム固有の制約](https://stackoverflow.com/q/15219938/1995738) – klin

答えて

0

モデルのsave()メソッドをオーバーライドして、考えられる最も洗練された制約を強制することができます。