0

ネストされた多対多の関係を持つモデルがあります

IndependentTestはプロトコルと多対多の関係を持っています

プロトコルはFormatと多対多の関係にあります。

したがって、特定のUserのテスト結果をIndependentTestsに対して保存する必要があります。

編集:ここにモデルがあります

class IndependentTest(models.Model):
    name = models.CharField(max_length=1000)
    choice = models.ManyToManyField(to=TestChoice, null=True, blank=True)
    required = models.BooleanField()
    testType = models.CharField(max_length=200,
                                choices=Values.CUSTOM_ATTRIB_TYPES)

class TestProtocol(models.Model):
    name = models.CharField(max_length=200)
    description = models.CharField(max_length=1000)
    independent_test = models.ManyToManyField(IndependentTest,
                                              through='PIOrder')

class PIOrder(models.Model):
    protocol = models.ForeignKey(TestProtocol)
    independent = models.ForeignKey(IndependentTest)
    order = models.IntegerField()

class TestFormat(models.Model):
    name = models.CharField(max_length = 100)
    test_protocol = models.ManyToManyField(TestProtocol, through='FPOrder')

class FPOrder(models.Model):
    format = models.ForeignKey(TestFormat)
    protocol = models.ForeignKey(TestProtocol)
    order = models.IntegerField()

編集:これが良いアプローチかどうかはわかりませんが、新しいクラスを作成できます

class CandidateTest (models.Model):
    test_value  = models.CharField(max_length = 200)
    candidate   = models.ForeignKey(Candidate)
    test        = models.ForeignKey(IndependentTest)
    testProtocol = models.ForeignKey(TestProtocol)
    testFormat  = models.ForeignKey(TestFormat)

結果は test_value に保存されますが、テストが行​​われた日付や場所などの他のデータはどうですか?

4

0 に答える 0