Форма боковой панели Django - PullRequest
1 голос
/ 12 августа 2011

Я пытаюсь создать форму боковой панели на веб-сайте, чтобы искать что-то вроде этого http://cl.ly/0e0R1T0G3B1x0c451F22, где человек может искать что-то по заданным параметрам в любой части сайта, что означает, чтоформа должна отображаться везде, и вот где у меня проблема.

кажется, что представление не передает форму на боковую панель на веб-сайте, что я могу сделать, чтобы всегда отправлять пустую форму в качестве боковой панели.

Я пытаюсь быть максимально ясным, но я знаю, что этого может быть недостаточно, пожалуйста, дайте мне знать, Я уточню.

Это мнение

@render_to(template='league/common_fragments/sidebar_fixturesandresults.html')
def results_fixt_search(request):
results_fixt_search_form = results_fixt_SearchForm(request)

return {'results_fixt_search_form': results_fixt_search_form, }

Это форма, обратите внимание, что я использую django-uni-форму

class HorizRadioRenderer(forms.RadioSelect.renderer):
""" this overrides widget method to put radio buttons horizontally
    instead of vertically.
"""
def render(self):
    """Outputs radios"""
    return mark_safe(u'\n'.join([u'%s\n' % w for w in self]))

class results_fixt_SearchForm(forms.Form):

league_search = forms.ChoiceField(choices=[ (league.slug, league.title ) for league in League.objects.all()])
radios = forms.CharField(widget=forms.RadioSelect(renderer=HorizRadioRenderer,
                choices=(('table','Table'),('results','Results'), ('fixtures', 'Fixtures'),)), required=True)


# uniForm Helper
helper = FormHelper()

layout = Layout(
    Fieldset('',
        'league_search', 'radios'
    )
)
helper.add_layout(layout)

# Submit button(s)
submit = Submit('submit','Submit')
helper.add_input(submit)


class Meta:
    fields = ['search_term', 'radios']

def __init__(self, request, *args, **kw):
    super(results_fixt_SearchForm, self).__init__(*args, **kw)
    self.request = request

это шаблон HTML

<form action="{% url results_fixt_search %}" method="get" enctype="multipart/form-data" id="results_fixt_search" class="select-form">
    {% with results_fixt_search_form.helper as helper %}
        {% uni_form results_fixt_search_form helper %}
    {% endwith %}
</form>

А это URL

url(r'^(?i)results_fixt/search/$', 'results_fixt_search', {}, name='results_fixt_search'),

1 Ответ

0 голосов
/ 12 августа 2011

Вы можете включить html-форму напрямую (без использования форм django для рендеринга):

<form action = '{% url search %}' method='GET'>
    <label>Query: <input type='search' name='query'></label>
    <input type='submit' value='Go'>
</form>

или передать экземпляр формы всем представлениям с помощью процессора контекста:

def search_form_processor(request):
    return {'search_form': SearchForm()}

и затем визуализируйте форму:

<form action = '{% url search %}' method='GET'>
    {{ search_form.query.label_tag }} {{ search_form.query }}
    <input type='submit' value='Go'>
</form>

Форма может быть обработана ее собственным представлением по собственному URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...