Django Best Practices:Как очистить и отобразить форму

Ситуация:У меня есть форма, которая используется для поиска, и я возвращаю ту же форму на странице результатов для фильтрации пользователем их результаты. Чтобы избавиться от ввода мусора, я реализовал метод clean_xxx.

К сожалению, форма возвращается на страницу результатов с вводом мусора, хотя она была очищена. Как я могу получить чистые данные для отображения?

Вот несколько идей.:

  1. В методе clean_xxx установите значение self.data.xxx = clean_xxx
  2. Повторно инициализируйте новую форму с очищенными_данными.

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...
    }

Спасибо за помощь.

7
задан Naqeeb 11 April 2012 в 16:15
поделиться