У меня есть следующая форма:
class AddGameForm(forms.ModelForm):
notes = forms.CharField(widget=forms.Textarea)
shelf = forms.ModelChoiceField(queryset=Shelf.objects.all())
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(AddGameForm, self).__init__(*args, **kwargs)
self.fields['shelf'].queryset = Shelf.objects.filter(owner=self.user)
class Meta:
model = Game
fields = ['name', 'status', 'hours', 'minutes', 'platform', 'notes', 'shelf']
и я хочу установить начальное значение shelf
. Я пробовал это, но это совсем не работает.
shelf = GameShelfJunction.objects.filter(game_id=game).first()
form = AddGameForm(instance=game, initial={'shelf': shelf.pk}, user=request.user)
Я не могу найти в Интернете ничего другого, кроме использования initial
kwarg, так что я немного растерялся. Связано ли это со мной с помощью функции __init__
для фильтрации набора запросов?