Получить значение из метода публикации в представлениях из цикла for - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь получить значение из шаблона в views.py проекта django. Я могу правильно получить значение name="city", но не могу получить точное значение name="category" в своих представлениях, вместо этого я получаю значение первого элемента для всех других элементов в l oop.
Идея решить эту проблему будет очень полезна.

#category.html

{% for test in mytypes %}
<form id="myform" action="{% url 'my_city_category' %}" method="POST">
{% csrf_token %}
<a href="javascript: submitform()">
<div class="col-6 col-lg-3 col-md-4 col-sm-6 col-xl-2 hover-box mt-2 text-center"> 
    <div class="pb-1 pt-2">
            <img src="{{test.icon_image.url}}" width="100"/>
            <h6 class="mt-3 text-body text-capitalize text-decoration-none">{{ test.category_type }}</h6>
            <input type="hidden" name="category" value="{{ test.category_type }}"># unable to repeat the value while calling it in the views, stuck at the first value
            <input type="hidden" name="city" value="{{ city }}"> #rendering the exact value
            
        </div>
</div>
</a>
</form>
{% empty %}
<h6 class="mt-3 text-body text-capitalize text-decoration-none">No Categories Listed</h6>
{% endfor %}
#views.py
def City_specific_page(request):
    city = request.POST.get('city')
    category = request.POST.get('category') 
    business= Business.objects.filter(city__City=city, type__category_type=category)
    return render(request, 'community_app/type_detail_city.html',{'business':business,'category':category,'city':city})
#urls.py
path('City', views.City_specific_page, name='my_city_category'),

1 Ответ

0 голосов
/ 11 июля 2020

Каждый <form> в вашем шаблоне включает следующий тег:

<a href="javascript: submitform()">

Я подозреваю, что ваша submitform функция отправляет первую форму на странице, а не ту, по которой щелкнули.

Вы можете быстро определить, является ли это проблемой, добавив кнопку отправки внутри своих тегов <form>. Убедитесь, что он не находится внутри тегов <a>, например:

<form id="myform" action="{% url 'my_city_category' %}" method="POST">
{% csrf_token %}
<button type="submit">Test</button>
<a href="javascript: submitform()">
<!-- the rest of your form code -->

Нажмите кнопку с надписью «Проверить», чтобы проверить, правильно ли отправлены данные формы.

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