Djangoを使用して簡単なアプリケーションを構築しています。ここで、定期的に行われる品質管理テストの情報を記録して追跡することができます。利用可能なすべての機器のリストが表示され、一連のテストを実行するか、以前に実行された他のアクティビティを検討するかを選択できます。今のところすべてが機能しているようだ。私は新しい機器を作り、新しい試験を行い、その機器に関連する試験をろ過することができます。しかし、今私は解決できない問題に直面しています。ここで私は苦労してるモデルと私のコードのサンプルです:ManyToManyフィールドを含むDjangoフォーム
/models.py
class Test(models.Model):
testgroup = models.ForeignKey(TestGroup)
equipament = models.ManyToManyField(Equipament, blank=True)
number = models.CharField(max_length=10)
name = models.CharField(max_length=120)
description = models.CharField(max_length=300, null=True, blank=True)
frequency = models.ForeignKey(Frequency, null=True, blank=True)
tolerance = models.CharField(max_length=30, null=True, blank=True)
def __str__(self):
return '%s%s%s %s' % (self.testgroup.modality, self.testgroup.abbreviation, self.number, self.name)
pass
class Activity(models.Model):
CONFORMANCE_CHOICES = (
('Yes', 'Yes'),
('No', 'No'),
)
equipament = models.ForeignKey(Equipament, on_delete=models.CASCADE)
type = models.ForeignKey(Type, null=True, blank=True)
date = models.DateField(null=True, blank=True)
summary = models.CharField(max_length=30, null=True, blank=True)
user = models.CharField(max_length=50, null=True, blank=True)
test = models.ManyToManyField(Teste, blank=True)
conformance = models.CharField(max_length=10, choices=CONFORMANCE_CHOICES, null=True, blank=True)
def __str__(self):
return '%s %s' % (self.date, self.equipament)
pass
私が行うために必要なものは、その結果、各テストへの適合の選択肢のいずれかを保存することができることです。アクティビティビューに、実行したいテストのリストを表示することができましたが、どのテストでその適合フィールドを保存することができますか?私の最善のアプローチは、適合フィールドをManyToManyFieldに変更することでした。フォームを通して、テストと適合の関係を作成しましたが、各テストですべての適合の選択肢を取得します。どのようにして1つのテストに適合する選択肢(選択したもの)を1つだけ定義できますか?助けてください...