Форма модели Django, ограничить выбор на основе значения в модели ForeignKey
У меня есть две модели:League
а также .Team
Team
имеет ссылку на внешний ключLeague
, Я хочу иметь возможность выбирать варианты, доступные дляTeam
на основе значений, хранящихся вLeague
, В частности:
class League(models.Model):
number_of_teams = models.IntegerField()
class Team(models.Model):
league = models.ForeignKey(League)
draft_slot = models.IntegerField(choices=[(i+1,i+1) for i in range(?????????)])
Я понимаю, что не могу точно определить мойdraft_slot.choices
вTeam
модель. Так что я бы ожидал настроитьTeam
вот так:
class Team(models.Model):
league = models.ForeignKey(League)
draft_slot = models.IntegerField()
Я создалModelForm
из:Team
class TeamModelForm(ModelForm):
class Meta:
model = Team
И вид наTeam
:ModelForm
def SetupTeam(request, fanatic_slug=None, league_slug=None):
league = League.objects.get(slug=league_slug)
form = TeamModelForm()
return render_to_response('league/addteam.html', {
'form': form
}, context_instance = RequestContext(request))
Что мне нужно, чтобы использовать,league.id
league.number_of_teams
поэтому мнениеTeamModelForm
prepopulatesteam.league
а также представляет поле для представленияteam.draft_slot
выглядеть как
draft_slot = models.IntegerField(choices=[(i+1,i+1) for i in range(league.number_of_teams+1)])