выбор поля, которое зависит от других функций в Джанго - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь создать динамический 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)

моя точка зрения близка!:)

...