Enviando o objeto request.user para ModelForm a partir da exibição genérica baseada em classe no Django
Então, meu objetivo é poder filtrar um conjunto de consultas ModelChoiceField no meu ModelForm para incluir apenas os locais que o request.user crio
@ My ModelForm é simplesmente:
class PlaceEventForm(models.ModelForm):
class Meta:
model = Event
Gostaria de poder adicionar algo como:
def __init__(self, *args, **kwargs):
super(PlaceEventForm, self).__init__(*args, **kwargs)
self.fields['place'].queryset = Place.objects.filter(created_by=request.user)
o entanto, não consigo encontrar uma maneira de acessar a solicitação no ModelFor
My View é assim:
class PlaceEventFormView(CreateView):
form_class = PlaceEventForm
template_name = 'events/event_create.html'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(PlaceEventFormView, self).dispatch(*args, **kwargs)
Não tenho certeza se isso é parecido com o que devo fazer, mas tentei:
def get_form_kwargs(self):
kwargs = super(PlaceEventFormView, self).get_form_kwargs()
kwargs.update({'place_user': self.request.user})
return kwargs
Mas eu recebi o erro:niss () recebeu um argumento inesperado da palavra-chave 'place_user'
Alguma ideia sobre este? Ou alguém pode pensar em uma maneira de filtrar meu ModelChoiceField na visualização sem precisar passar minha solicitação para o ModelForm?