gpt4 book ai didi

django - formfield_for_foreignkey 和内联管理员

转载 作者:行者123 更新时间:2023-12-04 14:32:48 29 4
gpt4 key购买 nike

我只想在特定的比赛中展示与球队相关的球员。通常当我这样做时,它会从数据库中显示我所有的球员。这是我的models.py

class InningsCard(models.Model):
fixture = models.ForeignKey(Fixture)
team = models.ForeignKey(Team)
runs = models.IntegerField(max_length=6, default=0)
wickets = models.IntegerField(max_length=6, default=0)
overs = models.FloatField(max_length=6, default=0.0)

def __unicode__(self):
return str(self.team)

class BattingDetail(models.Model):
STATUS_CHOICES = (
('no', 'not out'),
('bowled', 'bowled'),
('caught', 'caught'),
('lbw', 'lbw'),
)
innings = models.ForeignKey(InningsCard)
player = models.ForeignKey(Player)
runs = models.IntegerField(max_length=5, default=0)
status = models.CharField(max_length=15, choices=STATUS_CHOICES, default='no')

def __unicode__(self):
return str(self.player)

现在,这是我的 admin.py 包含 formfield_for_foreignkey,但它不起作用。
class BattingInline(admin.TabularInline):
model = BattingDetail
extra = 0

def formfield_for_foreignkey(self, db_field, request=None, **kwargs):

if db_field.name == 'player':
kwargs = Player.objects.filter(team = request.team)
else:
pass

return super(BattingInline, self).formfield_for_foreignkey(db_field, request, **kwargs)


class InningCardAdmin(admin.ModelAdmin):
inlines = [BattingInline]

我哪里出错了?

//鼠

最佳答案

  • 您正在替换整个 kwargs与查询集。 kwargs必须是字典,您要查找的特定键是“查询集”:
    kwargs['queryset'] = Player.objects.filter(team=request.team)
  • 我几乎肯定请求实际上不会有属性 team .除非您自己在此处未显示的某些代码中添加了它,否则您需要找到另一种方法来获取当前的“团队”。您可以从 request.path 解析出团队 ID并将其用于查找,例如。

  • 作为旁注, else如果您只是要去 pass,则不需要此条款那里。

    关于django - formfield_for_foreignkey 和内联管理员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9640103/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com