Request.GET.get(' ') возвращает None
У меня есть следующий URL: http://127.0.0.1:8000/application_form/Network%20Adminstrator/
URL генерируется с помощью: path('application_form/<str:job_title>/', views.ApplicationForm.as_view(), name='application_form')
Я продолжаю пробовать get_data = self.request.GET.get('job_title')
и ожидаю получить Network Adminstrator
, но вместо этого он возвращает None
Мой urls.py:
urlpatterns = [
path('application_form/<str:job_title>/', views.ApplicationForm.as_view(), name='application_form'),
]
views.py:
class ApplicationForm(CreateView):
model = Requirements
form_class = ApplicationForm
template_name = 'requirements/job_specs.html'
# Passes the request object to forms
def get_form_kwargs(self):
kwargs = super(ApplicationForm, self).get_form_kwargs()
kwargs['request'] = self.request
return kwargs
forms.py:
class ApplicationForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super(ApplicationForm, self).__init__(*args, **kwargs)
get_data = self.request.GET.get('job_title')
print(get_data)
dic = {'job_title__job_title': get_data}
self.fields['qualifications'].queryset = Requirements.objects.get(**dic)
class Meta:
model = Applicants
fields = ['email', 'qualifications']
email = forms.EmailField(label='', max_length=100, required=True, widget=forms.TextInput(
attrs={'class': 'form-group form-control input-lg ', 'placeholder': 'Email'}), )
qualifications = forms.ModelMultipleChoiceField(queryset=None, widget=forms.CheckboxSelectMultiple)
Любые мысли или идеи? Я все еще немного новичок в программировании на Django и буду очень признателен за ваше время и знания.
URL kwargs находятся не в запросе, а в самом классе. Попробуйте использовать метод self.kwargs.get('job_title')
. Если его нет в вашем ApplicationForm, вы можете передать их из метода get_form_kwargs
так же, как вы передали Request