python - Django forms: how do I display the initial blank form? -


मेरे पास यह दृश्य फ़ंक्शन है:

  def खोज (अनुरोध): यदि request.method == 'GET': form = SearchForm (request.GET) यदि form.is_valid (): last_name = form.cleaned_data ['last_name'] first_name = form.cleaned_data ['first_name'] वकील = वकील। [अन्य अगर बयानों] .... और: फॉर्म = सर्चफार्म () रिटर्न रेंडर_टो_प्रॉपस ('खोज' html, {'फॉर्म': फॉर्म})  

मुझे लगता होगा कि जब पेज लोड करता है else स्टेटमेंट को प्रारंभिक रिक्त रूप से निष्पादित किया जाएगा। पर ये स्थिति नहीं है। प्रारम्भ में प्रपत्र प्रदर्शित करने के लिए मुझे इसे पहले if :

  डीईफ़ खोज (अनुरोध) के अंदर जोड़ना होगा: यदि request.method == 'GET': फ़ॉर्म = SearchForm (request.GET) यदि form.is_valid (): last_name = form.cleaned_data ['last_name'] first_name = form.cleaned_data ['first_name'] वकील = वकील.ओब्जेस.सॉल्ल () [अन्य अगर बयान] .. प्रपत्र = SearchForm () रिटर्न render_to_response ('search.html', {'form': form}) अन्य: form = SearchForm () रिटर्न render_to_response ('search.html', {'form': form})   

क्या आप मदद कर सकते हैं क्यों पहला अगर कभी झूठा नहीं है? धन्यवाद।

संपूर्ण दृश्य फ़ंक्शन है

जब आप कोई फॉर्म पोस्ट करते हैं method = GET आप वास्तव में प्रारंभिक अनुरोध से विधि नहीं बदलते हैं: यह method = GET भी था।

आप या तो विधि = POST अपने रूप में, और यदि आपका बयान उस के लिए जांच करेगा, या आप आवश्यक फ़ील्ड के अस्तित्व की जांच कर सकते हैं, first_name , last_name या दोनों, क्योंकि आपके फॉर्म की आवश्यकता है।

  अगर 'first_name' अनुरोध में। GET या 'last_name' में अनुरोध। GET: form = SearchForm (request.GET) अन्य: form = SearchForm ()  

आप इसे इस रूप में अवगत करना चाहेंगे, __ init __ विधि को संशोधित कर सकते हैं, लेकिन आपको इसकी आवश्यकता नहीं है।


Comments

Popular posts from this blog

objective c - iPhone and it's wireless area -

unix - Listing all shared memory segments used by a process on AIX5.3+ -

tsql - Correct sql/hql query (aggregate in where clause) -