Частный случай, который у меня есть, выглядит следующим образом:
У меня есть модель транзакции с полями: 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.
Как я могу ограничить выбор в форме зависимыми от пользователя?