ModelFormを介して多対多フィールドによるモデルのリストを含むモデルインスタンスを作成しようとしています。しかし、これが発生すると、参照されているフィールドの1つを変更できる必要があります。ミッションのインスタンスがデータベースからインポートされDjango:フォームを介して別のモデルによって参照されるmanytomanyモデルフィールドを編集する
class AllAtt(models.Model):
weighting = models.IntegerField(null=True,blank=True)
mass = models.IntegerField(null=True,blank=True)
required_Power = models.IntegerField(null=True,blank=True)
memory = models.IntegerField(null=True,blank=True)
class Mission(AllAtt):
name = models.CharField(max_length=50)
def __unicode__(self):
return self.name
class Scenario(models.Model):
name = models.CharField(max_length=50)
creation_date = models.DateTimeField(default=datetime.now)
creator = models.ForeignKey(User,null=True,blank=True)
mission = models.ManyToManyField(Mission)
def __unicode__(self):
return self.name
class ScenarioForm(ModelForm):
class Meta:
model = Scenario
fields = ('name','mission',)
:ここ
は取り除かコードです。現在のところ、これはmultiplechoicefieldからMissionインスタンスを選択することができますが、これは私が必要とするものではありません。シナリオにすべてのMissionインスタンスを含めることができ、フォームを通じて「加重」フィールドを変更したいと考えています。
私がやろうとしていることの簡単な例: 私は特定の数のタスク(ミッション)を持っており、組み合わせると何かを達成します(シナリオ)。 人間には多くのタスク機能があります。私のシナリオが「日付の準備」である場合、これらの機能は次のように重要度が重み付けされている可能性があります。コーヒーを作る - 0、飼い犬-2、シャワー-3、服を着る - 5.シナリオが「Django私は新しいシナリオを作成するたびに、すべての可能なタスクの重みを変更できる必要があります。
これを達成する方法についての助力や洞察力があれば幸いです。ありがとう!
ありがとう、それはセットアップのために働くようです。どのようにこのデータをフォームに表示させるかについてのアイデアはありますか? – xohxvalentinex
私はあなたがフィールド "から" –
I持っているためにフォームセットを使用すべきだと思う: WeightFormset = modelformset_factory(重量)、 'シナリオ'(=除外し、余分= 20、) \t formW = WeightFormset(request.POSTまたはなし) しかし、このデータをシナリオのインスタンスとして保存する方法を理解できません – xohxvalentinex