Я пытаюсь передать параметр get с предыдущей страницы, назначенной моей кнопке, на следующую страницу, добавить его в мою форму и сохранить в моей базе данных.Мой код выглядит так:
views.py
def massage_order(request):
parametr_html_product_name = request.GET('parameter')
if request.method == 'POST' and 'btn_massage_order' in request.POST:
ordering_form = OrderingMassageForm(data=request.POST)
if ordering_form.is_valid():
massage_product = parametr_html_product_name
[...]
else:
ordering_form = OrderingMassageForm()
templates.html
<a href="{% url 'app:massage_order' %}?parameter={{ product.name }}¶meter_1={{ product.price }}¶meter_2={{ product.time }}¶meter_3={{ masseur.name }}">
<div class="btn-group btn-action-label" role="group" aria-label="Like">
<div class="btn btn-sm btn-outline-primary btn-label">{{ product.price }} zł/ {{ product.time }} min</div>
<button type="button" class="btn btn-sm btn-primary btn-action">
<span>Zamów masaż</span>
</button>
</div>
</a>
Но якаждый раз получая ошибку 'Multi Value Dict Key Error' я нашел его решение parametr_html_product_name = request.GET.get('parameter', False)
, но в этой ситуации моей переменной является False, а не название продукта (что он ожидает).Как я могу передать переменную «html имя продукта параметра» в мою форму?Я пытался добавить его в список (тоже без положительного эффекта).Мы будем благодарны за любую помощь.
Почему, несмотря на добавление переменной в список Django, она не отображается в моей форме?
list = [parametr_html_masseur_name, parametr_html_product_name]
[...]
massage_product = list[1]
[...]
РЕДАКТИРОВАТЬ
templates.html
<form action="." method="post">
<input type="hidden" name="name" value="{{ product.name }}">
<input type="hidden" name="name" value="{{ product.price }}">
<input type="hidden" name="name" value="{{ product.time }}">
{% csrf_token %}
<div class="btn-group btn-action-label" role="group" aria-label="Like">
<div class="btn btn-sm btn-outline-primary btn-label">{{ product.price }} zł/ {{ product.time }} min</div>
<button type="submit" name="hidden_btn" class="btn btn-sm btn-primary btn-action">
<span>Zamów masaż</span>
</button>
</div>
</form>
forms.py
class HiddenOrderingMassageForm(forms.Form):
product_name = forms.CharField(widget=forms.HiddenInput)
price = forms.IntegerField(widget=forms.HiddenInput)
time = forms.IntegerField(widget=forms.HiddenInput)
views.py
if request.method == 'POST' and 'hidden_btn' in request.POST:
hidden_form = HiddenOrderingMassageForm(request.POST)
if hidden_form.is_valid():
product_name = hidden_form.cleaned_data['product_name']
return HttpResponseRedirect(reverse('app:massage_order', args=[product_name]))
else:
hidden_form = HiddenOrderingMassageForm()
urls.py
url(r'^massage_order/(?P<text>[\w\-]+)/$', views.massage_order, name='massage_order')