2011-07-21 7 views
1
class Truc(models.Model): 
    name = models.CharField(max_length=50, unique=True) 
    machin1 = models.ForeignKey(Machin1, blank=True, null=True) 
    machin2 = models.ForeignKey(Machin2, blank=True, null=True) 
    machin3 = models.ForeignKey(Machin3, blank=True, null=True) 

私はTrucは1 machin、どちらかmachin1machin2またはmachin3のいずれかにリンクされたいです。ジャンゴ - 複数のオプションのForeignKey

つだけのリンク

、その検証のこの種:

machin1 xor machin2 xor machin3 

答えて

0

それは今までgeneric relation 1回の使用にリンクされている場合:

class Truc(models.Model): 
    name = models.CharField(max_length=50, unique=True) 
    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField() 
    machin_object = generic.GenericForeignKey('content_type', 'object_id') 
+0

が、私はこの概念を知りませんでしたが、私は文書を読む。 –

+0

これは私が探していたことですが、Machinオブジェクトを別に設計する必要があると思います。私は彼らが単に(Tru2)を指すべきであると思う –

関連する問題