Django नौसिखिया सवाल का प्रारंभिक मूल्य दर्रा ....एक Django फॉर्म फील्ड
मैं एक खोज फॉर्म लिख सकते हैं और खोज अनुरोध और खोज परिणामों के बीच इनपुट बॉक्स के राज्य बनाए रखने के लिए कोशिश कर रहा हूँ।
यहाँ मेरी प्रपत्र है:
class SearchForm(forms.Form):
q = forms.CharField(label='Search: ', max_length=50)
और यहाँ मेरे विचार कोड है:
def search(request, q=""):
if (q != ""):
q = q.strip()
form = SearchForm(initial=q)
#get results here...
return render_to_response('things/search_results.html',
{'things': things, 'form': form, 'query': q})
elif (request.method == 'POST'): # If the form has been submitted
form = SearchForm(request.POST)
if form.is_valid():
q = form.cleaned_data['q']
# Process the data in form.cleaned_data
return HttpResponseRedirect('/things/search/%s/' % q) # Redirect after POST
else:
form = SearchForm()
return render_to_response('things/search.html', {
'form': form,
})
else:
form = SearchForm()
return render_to_response('things/search.html', {
'form': form,
})
लेकिन यह मुझे त्रुटि देता है:
Caught an exception while rendering: 'unicode' object has no attribute 'get'
मैं प्रारंभिक मूल्य कैसे पारित कर सकते हैं? मैंने कोशिश की कई चीजें अनुरोध में हस्तक्षेप करने लगती हैं। POST पैरामीटर।
त्रुटि की वजह से एक dict के बजाय एक यूनिकोड वस्तु पारित करने के लिए है। (dict '' get() 'को परिभाषित करता है, लेकिन स्ट्रिंग/यूनिकोड नहीं करता है)। – spookylukey
आह, उत्कृष्ट बिंदु। मैंने त्रुटि देखी लेकिन कनेक्शन नहीं बनाया! – cethegeek
विस्तृत टिप्पणियों और समाधान के लिए धन्यवाद। मैं इसे इस तरह कार्यान्वित कर दूंगा क्योंकि मैं चाहता था कि परिणाम यूआरएल/खोज/क्वेरी जैसा दिखें (मुझे पता है कि इसमें समस्याएं हैं, हालांकि, और इसे अच्छी तरह से संशोधित कर सकते हैं)। मैं पोस्ट के बाद रीडायरेक्ट करता हूं, इसलिए बैक बटन दबाकर कोई समस्या नहीं है। – AP257