Как сохранить реализацию на javascript в Django
Я студент, который изучает Janggo. Я реализую страницу, которая представляет информацию о выбранной опции, когда я выбираю опцию. Исходный код может быть написан следующим образом для настройки количества, и цена была реализована для изменения в зависимости от количества. Я хочу сохранить части количества и цены в db, но понятия не имею, что делать. Как можно решить эту проблему?
html
<form method="POST" action="{% url 'zeronine:join_create' id=product.product_code %}">
<div class="form-group row" style="margin-top: -5px">
<label for="optionSelect" class="col-sm-6 col-form-label"><b>옵션</b></label>
<div class="col-sm-6" style="margin-left: -90px;">
<select type="text" class="form-control" name="value_code" id="optionSelect" value="{{ form.value_code }}">
<option value="none">옵션을 선택하세요.</option>
{% for option in option_object %}
{% if option.option_code.option_code.option_code == value.option_code %}
{%if option.product_code == product %}
<optgroup label="{{option.name}}">
{% for value in value_object %}
{% if value.option_code.option_code == option.option_code %}
{%if value.product_code == product %}
<option data-price="{{value.extra_cost}}"value="{{value.value_code}}">{{value.name}} (+{{value.extra_cost}}원)</option>
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
</optgroup>
</select>
</div>
<div id="selectOptionList" style="margin-top:10px; margin-left: 20px; margin-bottom: -10px;"></div>
</div>
script
forms.py
class ElementForm(forms.Form):
value_code = forms.ModelChoiceField(error_messages={'required': "옵션을 선택하세요."}, label="옵션", queryset=Value.objects.all())
class JoindetailForm(forms.Form):
quantity = forms.IntegerField(error_messages={'required': "1개 이상 선택 시 참여가 가능합니다."}, label="수량")
price = forms.IntegerField(error_messages={'required': "1개 이상 선택 시 참여가 가능합니다."}, label="가격")
views.py
models.py
Я думаю, что вы можете использовать request.POST.get('')
, потому что в вашем html я не вижу JoindetailForm
, поэтому ваш form = JoindetailForm(request.POST)
будет иметь значение Null, вы можете попробовать следующее:
вы можете добавить свой unit_amount * quantity
к значению ввода и тип скрыт:
<input type="hidden" name="price" value="">
в представлении используйте request.POST.get('')
для получения скрытого значения:
price = request.POST.get('price')
и использовать objects.create лучше, чем Form():
JoinDetail.objects.create(price=price, quantity=quantity)
и вы должны много if request.method == "POST":
в первом, если это POST, то request.method
будет POST, так что просто оставьте первый раз будет хорошо и легко отлаживать.