Как получить значение input при нажатии на кнопку в django
У меня есть шаблон django следующего содержания
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Master Title</th>
<th>Retailer title</th>
<th>To add</th>
</tr>
</thead>
<tbody>
{% if d %}
{% for i in d %}
<tr>
<th scope="row">{{forloop.counter}}</th>
<td>{{i.col1}}</td>
<td>{{i.col2}}</td>
<td>
<input type="hidden" name='row_value' value="{{i.col1}}|{{i.col2}}">
<a class='btn btn-success' href="{% url 'match' %}">Match</a>
<a class='btn btn-outline-danger' href="{% url 'mismatch' %}">Not a Match</a>
</td>
</tr>
{% endfor %}
{% endif %}
</tbody>
</table>
Когда кнопка совпадения нажата, я хочу вывести значение скрытого ввода в представлениях. Вот мой views.py
def match(request):
print(request.GET.get('row_value'))
print('match')
Но это возвращает None.
Я хочу, чтобы значения col1 и col2 были выведены следующим образом
col1|col2
Я не уверен, где я ошибаюсь.
Вы должны использовать параметры URL Django с GET:
urls.py
urlpatterns = [
path('your-path/<int:first_param>/<int:second_param>', views.match),
]
источник: https://docs.djangoproject.com/en/3.2/topics/http/urls/#example
views.py
def match(request, first_param=None, second_param=None):
# then do whatever you want with your params
...
источник: https://docs.djangoproject.com/en/3.2/topics/http/urls/#specifying-defaults-for-view-arguments
template:
<td>
<a class='btn btn-outline' href="your-path/{{i.col1}}/{{i.col2}}">Example</a>
</td>
Это базовый пример, поэтому измените его в соответствии с вашим случаем использования.