ما هي أفضل طريقة للقيام شريط التنقل مربع البحث في جانغو?

StackOverflow https://stackoverflow.com/questions/1610934

  •  05-07-2019
  •  | 
  •  

سؤال

وأود أن يكون مربع بحث متكامل في شريط التنقل الذي يظهر في أعلى كل صفحة (ها هو مثال على ما أتحدث عنه هناك في الجزء العلوي من هذه ستاكوفيرفلوو الصفحة).

ولعل nav.html قد تبدو مثل:

<ul id="menu">
    <li><a href="/products"></li>
    <li><a href="/service"></li>
    <li>{{ nav_search_form.as_p }}</li>
</ul>

ربما forms.py قد تحتوي على:

class NavSearchForm(forms.Form):
  query = forms.CharField(max_length=30, required=False)

مع الجاف المبدأ أنا لا أريد views.py أن تبحث عن 'query' في كل صفحة مثل:

def ProductsPage(request):
    search_form = NavSearchForm()
    if request.GET.has_key('query'):
        query = request.GET['query'].strip()
    # deal with 'Products' here...

def ServicePage(request):
    search_form = NavSearchForm()
    if request.GET.has_key('query'):
        query = request.GET['query'].strip()
    # deal with 'Service' here...

أنا يمكن بسهولة برنامج صفحة من شأنها أن التعامل مع استعلام البحث و عرض النتائج.كيف يمكنك استخراج أفضل مصطلحات البحث و توجيه المستخدم إلى صفحة البحث (عودة HttpResponseRedirect('/نتائج/?query=' + استعلام)) دون تجريد الطلب.الحصول على كل صفحة ؟

هل كانت مفيدة؟

المحلول

ويكون مجرد نموذج البحث يفعل GET على URL البحث المشترك الخاص بك.

<form action="/search/" method="get">
...
</form>

استخدم مرفق URL عكس بحث إذا كنت لا تريد باستخدام الأسلاك وURL ...

<form action="{% url my-search-view %}" method="get">
...
</form>

وإذا لم I أساء فهم السؤال، يبدو وكأنه ربما كنت أفكر أن أشكال لها للحصول على / آخر لنفس URL التي حملت الصفحة الحالية.

نصائح أخرى

ونحن نستخدم جوجل CSE على أحد مواقعنا وحان واضحة قدر ما تستطيع احصل على. هناك عددا من الميزات يمكنك تشغيل، ولكن الأمر تافها وتحصل كل الخير جوجل القياسية ™.

  1. استخدام منفصلة نظر جو هولواي يوحي.
  2. استخدام أشكال الطاقة

    def ProductsPage(request):
        search_form = NavSearchForm(request.GET)
        if search_form.is_valid():
            ....
    
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top