Я пытаюсь создать динамический ChoiceField, который зависит от некоторых других функций.
Например: в моей модели команда - это объединение двух игроков.И когда игрок хочет участвовать в чемпионате, ему нужно выбрать одну из своих команд.(игрок A настолько популярен, что он во многих командах, и он должен выбрать одну из них).
На первом шаге я просто хочу иметь возможность перечислить все команды, содержание которых plyerA присутствует в командах(по состоянию на player1 или Player2).
На втором шаге я хочу удалить всю команду, где другой игрок уже участвует в соревновании с другим игроком.models.py
class Team(models.Model):
Name=models.CharField()
Player1=models.ForeignKey(User,related_name='Player1')
Player2=models.ForeignKey(User,related_name='Player2')
forms.py
class AddTeamInConcours(forms.Form):
Team = forms.ModelChoiceField( f(userId))
Я пытаюсь:
использовать объект Q в конструкторе, но это не так't works:' (
, чтобы создать список и заполнить поле choiceField этим списком, но оно тоже не работает
Решено
Для первого шага я нашел решение. Я заполняю свой взгляд такими вариантами:
aForm.fields['Team'].queryset=aForm.fields['Team'].queryset.filter(Q(Player1=userId)|Q(Player2=userId))
Для второго шага ... Я нашел, как сделатьоба в одном. Я создаю функцию с моими параметрами в моем представлении, которые возвращают мне список. После того, как я использую этот список в фильтре, как это:
aForm.fields['Team'].queryset=aForm.fields['Team'].queryset.filter(id__in = lTeam)
моя точка зрения близка!:)