django - inlineformset_factory with more than one ForeignKey
我正在尝试使用以下模型创建一个表单集(主要是Boost):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class boost(models.Model): creator = models.ForeignKey(userInfo) game = models.ForeignKey(gameInfo) name = models.CharField(max_length=200) desc = models.CharField(max_length=500) rules = models.CharField(max_length=500) subscribe = models.IntegerField(default=0) class userInfo(models.Model): pic_url= models.URLField(default=0, blank=True) auth = models.ForeignKey(User, unique=True) birth = models.DateTimeField(default=0, blank=True) country= models.IntegerField(default=0, blank=True) class gameInfo(models.Model): psn_id = models.CharField(max_length=100) name = models.CharField(max_length=200) publisher = models.CharField(max_length=200, default=0) developer = models.CharField(max_length=200, default=0) release_date = models.DateTimeField(blank=True, null=True) |
我想显示一个表单来添加一个增强项,尝试这样做:
1 2 | TrophyFormSet = inlineformset_factory(db.gameInfo, db.boost, extra=1) formset = TrophyFormSet() |
以下是我的问题:
1-渲染时,"creator"的组合框显示"db.userinfo"的列表(字面意思)!我希望显示数据库中已有的db.userinfo.auth.username…怎么做?
2-这样,我的"db.gameinfo"在哪里选择?
谢谢您!= D
不等于
捷克人很好地回答了我的问题!但现在我只需要问一个问题:
当我使用ModelForm为Boost_奖杯模型创建表单时:
1 2 3 4 5 6 7 8 9 10 11 12 | class boost_trophy(models.Model): boost = models.ForeignKey(boost) trophy = models.ForeignKey(gameTrophyInfo) # 0 - Obtiveis # 1 - Requisitos minimos type = models.IntegerField(default=0) class gameTrophyInfo(models.Model): game = models.ForeignKey(gameInfo) name = models.CharField(max_length=500) desc = models.CharField(max_length=500) type = models.CharField(max_length=20) |
它的工作很好,但我想在"游戏"框中只显示一组非常小的ITEN,只显示:gametrophyinfo(game_uu name="game_u a")结果。我该怎么做?
如果我理解正确:
要更改显示的内容,请设置模型的
1 2 3 4 5 | class userInfo(models.Model): #model fields def __unicode__(self): return self.auth.username |