स्थिति: मेरे पास एक ऐसा फॉर्म है जिसका उपयोग खोज के लिए किया जाता है और मैं उपयोगकर्ता के परिणामों को फ़िल्टर करने के लिए परिणाम पृष्ठ पर उसी फॉर्म को वापस कर देता हूं। कचरा इनपुट से छुटकारा पाने के लिए, मैंने एक क्लीन_xxx विधि लागू की है।Django सर्वोत्तम व्यवहार: फ़ॉर्म को कैसे साफ और प्रस्तुत करना
दुर्भाग्य से, परिणाम पृष्ठ पर कचरा इनपुट के साथ वापस लौटाया गया है, भले ही इसे साफ़ किया गया हो। मैं प्रदर्शित करने के लिए स्वच्छ डेटा कैसे प्राप्त कर सकता हूं?
- clean_xxx विधि में, सेट self.data.xxx = cleaned_xxx मूल्य
- reinitialize cleaned_data साथ एक नया रूप:
यहाँ कुछ विचार कर रहे हैं।
forms.py:
SearchForm:
def clean_q(self):
q = self.cleaned_data.get('q').strip()
# Remove Garbage Input
sanitized_keywords = re.split('[^a-zA-Z0-9_ ]', q)
q = "".join(sanitized_keywords).strip()
#TODO: Fix
self.data['q'] = q
return q
views.py
search_form = SearchForm(params, user=request.user)
if search_form.is_valid():
# Build the Query from the form
# Retrieve The Results
else:
# For errors, no results will be displayed
_log.error('Search: Form is not valid. Error = %s' %search_form.errors)
response = {
'search_form': search_form...
}
आपकी मदद के लिए धन्यवाद।
अपना कोड दिखाएं: http://sscce.org/ – Marcin
पुनर्नवीनीकरण काफी अच्छा दिखता है। पहला विकल्प कुछ बिंदु से एक हैक है। – ilvar
@ मार्सिन मैंने आपके कोड को – Naqeeb