Использовать JS onclick для передачи некоторых данных в Django views.py?
Я хочу отправить идентификатор продукта в мои представления.
Шаблоны
<div class="products__header--search-result">
    <ul>
        {% for product in products %}
            <li onclick="change('{{ product.id }}')"><a href="#">{{ product.name }}</a></li>
        {% endfor %}
    </ul>
</div>
<script>
    function change(foo) {
        $.ajax({
            url: {% url 'dashboard' %},
            data: {
                'foo': foo,
            },
        });
    }
</script>
views.py
myRequets = request.GET.get('foo')
Но myRequets возвращает 'None'
Как я могу это исправить? Есть ли лучший способ передачи значений в views.py?
Для этого вам не нужен JS, потому что Django позволяет использовать параметры в урлах:
# URLconf
from django.urls import path
from . import views
urlpatterns = [
    path('product/', views.product),
    path('product/<int:product_id>/', views.product),
]
views.py
# View (in product/views.py)
def product(request, product_id=None):
    products = None
    if product_id:
       # Output the appropriate page of product entry, according to product_id.
        return ...
    # Output the appropriate page when product_id is None
    return ...
Источник: https://docs.djangoproject.com/en/3.2/topics/http/urls/#example (адаптировано)
Затем в вашем шаблоне:
{% if products %}
<div class="products__header--search-result">
    <ul>
        {% for product in products %}
            <li><a href="/product/{{ product_id }}/">{{ product.name }}</a></li>
        {% endfor %}
    </ul>
</div>
{% endif %}