Добавить панель поиска через представление на основе классов - PullRequest
0 голосов
/ 27 мая 2019

Я новичок в django, и я хочу создать панель поиска в моей сети В моем Интернете я отображаю список form.ModelMultipleChoiceField. И после того, как я добавлю панель поиска в свой веб, список не изменится на то, что я хочу искать.

Это моя форма в html-файле:

<form method="GET" action="{% url 'diagnosis_penyakit:search' %}">
   <p style="margin-left: 700px;">Gejala : </p>
   <input type="text" name="q" value="{{ request.GET.q }}" id="data" class="form-control" placeholder="Cari gejala disini" style="width: 500px; margin-left: 700px">
   <button class="btn btn-success" type="submit" style="margin: 3rem; margin-left: 900px">
        Search
   </button>
</form>

Это мои views.py:

def search(request):
template = 'penyakit/home.html'

query = request.GET.get('q')

results =  Gejala.objects.filter(Q(gejala__contains=query))

print(results, "search test")

if request.user.is_authenticated:
    form_review = ReviewUserForm(request.POST or None)
    form = UserResponseForm(request.POST or None)
    list_rev_user = []
    rev_user = ReviewFromUser.objects.all().filter(user_id=request.user.id)
    for rev in rev_user:
        list_rev_user.append(rev.number_diagnosis)
    num_diagnosis = UserAnswer.objects.all().filter(user_id = request.user.id).order_by("-number_diagnosis")
    num = list_rev_user.count(num_diagnosis[0].number_diagnosis)
    if len(num_diagnosis)>0:
        user_answer = UserAnswer.objects.all().filter(user_id = request.user.id, number_diagnosis = num_diagnosis[0].number_diagnosis)
        diagnosis = DiagnosisPenyakit.objects.all().filter(user_id = request.user.id, number_diagnosis = num_diagnosis[0].number_diagnosis).order_by("-total_point")
        context = {
            "form": form,
            "form_review" : form_review,
            "user_answer" : user_answer,
            "diagnosis" : diagnosis,
            "hasil_diagnosis": diagnosis[0],
            "num" : num,
            "query" : query,
        }
        return render(request, "penyakit/home.html", context)
    else:
        context = {
            "form": form,
        }
        return render(request, "penyakit/home.html", context)
else:
    raise Http404

return render_to_response(request, template, context)

Это мой url.py:

url(r'^results/$', views.search, name='search'),

А это мой forms.py:

class UserResponseForm(forms.Form):
     gejala_id1 = forms.ModelMultipleChoiceField(queryset=Gejala.objects.all().values_list('gejala', flat=True).distinct().filter(id_organ=1).order_by('gejala'), widget=forms.CheckboxSelectMultiple, required=False)
     gejala_id2 = forms.ModelMultipleChoiceField(queryset=Gejala.objects.all().values_list('gejala', flat=True).distinct().filter(id_organ=2).order_by('gejala'), widget=forms.CheckboxSelectMultiple, required=False)
     gejala_id3 = forms.ModelMultipleChoiceField(queryset=Gejala.objects.all().values_list('gejala', flat=True).distinct().filter(id_organ=3).order_by('gejala'), widget=forms.CheckboxSelectMultiple, required=False)
     gejala_id4 = forms.ModelMultipleChoiceField(queryset=Gejala.objects.all().values_list('gejala', flat=True).distinct().filter(id_organ=4).order_by('gejala'), widget=forms.CheckboxSelectMultiple, required=False)
     gejala_id5 = forms.ModelMultipleChoiceField(queryset=Gejala.objects.all().values_list('gejala', flat=True).distinct().filter(id_organ=5).order_by('gejala'), widget=forms.CheckboxSelectMultiple, required=False)

И я хочу добавить панель поиска, и я попробовал это с вышеупомянутым, и это не работает. Надеюсь, что кто-то может помочь мне добавить панель поиска в моей сети. Как я уже сказал, я очень новичок в джанго.

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