Частный случай, который у меня есть, выглядит следующим образом:
У меня есть модель транзакции с полями: from
, to
(обе модели от ForeignKey
до auth.User
) и amount
. В моей форме я хотел бы представить поля пользователя 2 для заполнения: amount
и from
(to
будет автоматически настроен на текущий пользователь в функции просмотра).
Виджет по умолчанию для представления ForeignKey
- это поле выбора. Но то, что я хочу туда получить, ограничивает выбор только членами набора запросов user.peers
(так что люди могут регистрировать транзакции со своими сверстниками и не наводняться всеми пользователями системы).
Я попытался изменить ModelForm на что-то вроде этого:
class AddTransaction(forms.ModelForm):
from = ModelChoiceField(user.peers)
amount = forms.CharField(label = 'How much?')
class Meta:
model = models.Transaction
Но мне кажется, что я должен передать выборку выбора для ModelChoiceField
прямо здесь - где у меня нет доступа к веб-объекту request.user
.
Как я могу ограничить выбор в форме зависимыми от пользователя?