Как получить ID записи в другом html? - PullRequest
0 голосов
/ 26 мая 2020

почему я не могу получить идентификатор типа платежа, даже если я уже распечатал идентификатор в html?

в моем первом html (elementary. html) У меня есть этот код

<select name="gradelevel" id="gradelevel" onchange="ChangeYearList(this.value)">
    <option">-- Education Level --</option>
    {% for ylvl in edulevel %}
    <option value="{{ylvl.id}}">{{ylvl.Description}}</option>
    {% endfor %}
</select>

<div id="txtHint" class="scale-in-center" width="100%"></div>


<script>
function ChangeYearList(str) {
var xhttp;
var x = document.getElementById("gradelevel").value;
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
document.getElementById("demo").innerHTML = x;
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
         document.getElementById("txtHint").innerHTML = this.responseText;
    }
};
xhttp.open("GET", "{% url 'paymentElementary' %}?payments_ID="+str, true);
xhttp.send();
}
</script>

это мой views.py

def paymentElementary(request):

paymentsid = request.GET.get('payments_ID')
payment = ScheduleOfPayment.objects.filter(Education_Levels=paymentsid).order_by('Payment_Type').distinct('Payment_Type')
return render(request, 'accounts/paymentElementary.html', {"payment":payment})

Это мой второй html (paymentElementary. html)

<select id="payments" name ="payments">
    <option value="0">-- Payment Type --</option>
   {% for paymentschedule in payment %}
    <option value="{{paymentschedule.Payment_Type.id}}">{{paymentschedule.Payment_Type.id}}. {{paymentschedule.Payment_Type}}</option>
    {% endfor%}
</select>

вот так выглядит как в веб-просмотре

enter image description here

, это работает как шарм. но когда я попытался сохранить его в своей базе данных

id = request.POST.get('payments')
payment = PaymentType(id=id)

V_insert_data = StudentsEnrollmentRecord.objects.create(
    Payment_Type=payment
        )

, это ошибка

enter image description here

это полная трассировка

enter image description here

1 Ответ

0 голосов
/ 26 мая 2020
  • обновите файл view.py таким образом
def paymentElementary(request):

paymentsid = request.GET.get('payments_ID')
payment = ScheduleOfPayment.objects.get(Education_Levels=paymentsid).order_by('Payment_Type').distinct('Payment_Type')
return render(request, 'accounts/paymentElementary.html', {"payment":payment})

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