我正在尝试通过ModelForm创建一个包含模型列表的模型实例,通过多对多字段。但是,当发生这种情况时,我需要能够更改被引用的字段之一。
以下是剥离的代码:
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',)
从数据库导入Missions实例的位置。目前,这允许我从multiplechoicefield中选择Mission实例,但这不是我需要的。我希望能够在场景中包含所有Mission实例,然后通过表单更改“权重”字段。
我想要做的一个简单示例: 我有一定数量的任务(任务),当他们结合起来时他们会完成某些任务(场景)。 人类有很多任务功能。如果我的场景是“为日期做好准备”,那么这些功能的重要性可能会加权: 制作咖啡 - 0,喂狗-2,淋浴 - 3,穿衣 - 5.如果情景是“正在使用Django代码”,那么这些功能的权重为:制作咖啡 - 5,喂狗 - 2,淋浴 - 0,穿好衣服 - 1.每次我制作一个新的场景时,我都需要能够改变所有可能任务的权重。
非常感谢有关如何实现这一目标的任何帮助或见解。谢谢!
答案 0 :(得分:0)
据我了解,您需要在Mission
中指定Scenario
关系的权重。
基本上你需要的是through
模型(有重量)。您可以在此处看到它:https://docs.djangoproject.com/en/dev/topics/db/models/#intermediary-manytomany