簡體   English   中英

Django在request.POST.get之后返回None

[英]Django returning None after request.POST.get

我是Django和AJAX的新手,並且嘗試使用ajax POST將下拉列表的ID發送到Django View。 然后,此ID在查詢集過濾器中使用,以基於ID從AJAX返回該行。 我陷入了將過濾器應用於查詢集的困境,因為它似乎正在發布ID,然后發布一個無值的變量。 當我打印以控制台發送在POST中發送的變量時,我得到了ID,然后沒有ID,例如:

1748
None

我的HTML是:

<select id="drugSet">
{% for dose in dose_set %}
<option id="{{ dose.pubmed_id }}">{{ dose.drug_name }}</option>
{% endfor %}
</select>
<span id="drugName"></span>

Javascript:

function NeedDrugInformation() {
            var elementID = document.getElementById("drugSet");
            var strUser = elementID.options[elementID.selectedIndex].id;

            $.ajax({
                type: "POST",
                url: "drugsanddoses/",
                dataType: "text",
                async: true,
                data: { csrfmiddlewaretoken: '{{ csrf_token }}', drugID: strUser },
            });

            $.ajax({
                type: "GET",
                url: "drugsanddoses",
                dataType: "text",
                async: true,
                data: { csrfmiddlewaretoken: '{{ csrf_token }}' },
                success: function (json) {
                    $('#drugName').html(json.drugInfo);
                    // $('.ajaxProgress').hide();
                }
            })
        }

views.py:

def drugsanddoses(request):

    drugIdentifier = request.POST.get('drugID')

    print(drugIdentifier)

    drugInfo = RiskCalculator.objects.values('drug_name', 'l_dose', 'h_dose', 'risk', 'pubmed_id', 'updated')

    response_data = {}

    try:
        response_data['drugInfo'] = str(drugInfo)
    except: 
        response_data['result'] = 'No details found'
        response_data['message'] = 'There is currently no information in the database for this drug.'


    return HttpResponse(json.dumps(response_data), content_type="application/json")

您正在發出兩個Ajax請求; 一種是POST(其中存在ID),另一種是GET(缺少ID),因此它顯示None。 我真的不明白您為什么要提出兩個請求,但這就是您正在做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM