Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用json转储将2个变量传递给ajax函数?_Ajax_Django_Django Views - Fatal编程技术网

如何使用json转储将2个变量传递给ajax函数?

如何使用json转储将2个变量传递给ajax函数?,ajax,django,django-views,Ajax,Django,Django Views,我想在html代码中将两个变量:scenario_name和scenario_id从我的视图传递给我的ajax函数 因此,基本上在数据库中,每个组织可以有多个场景。组织和场景模型各有2个字段:id字段和名称字段 我的另一个疑问是,一旦我将其传递给ajax,我如何访问传递的变量 我的观点 from django.shortcuts import render, redirect from Organization.models import Organization from django.htt

我想在html代码中将两个变量:scenario_name和scenario_id从我的视图传递给我的ajax函数

因此,基本上在数据库中,每个组织可以有多个场景。组织和场景模型各有2个字段:id字段和名称字段

我的另一个疑问是,一旦我将其传递给ajax,我如何访问传递的变量

我的观点

from django.shortcuts import render, redirect
from Organization.models import Organization
from django.http import HttpResponse
from Scenario.models import Scenario
import json
from django.core import serializers


def alertindex(request):
return render(request, 'alertindex.html', {
    'Organization': Organization.objects.all(),
    })
def get_scenario(request):
    org_id = request.GET.get('org_id')
    organization = Organization.objects.get(pk=int(org_id))
    scenario = organization.scenario_set.all()
    scenarios = serializers.serialize("json", scenario)
    return scenarios 
url.py

from . import views
from django.conf.urls import url


urlpatterns = [
    # Add alert url
    url(r'^$', views.alertindex, name='alertindex'),
    # Bind data in scenario drop down
    url(r'^/Scenario$', views.get_scenario,   name='Get_Scenario'),
]

我的ajax函数

       var orgID = $(this).val();
        var scenarios = '{{ scenarios }}'
        $.ajax({
            type: "GET",
            url: "{% url 'Get_Scenario' %}",
            data: { org_id: orgID},
                success: function () {
                var udata = "";
                for (var i = 0; i < scenarios.length; i++) {
                    udata = udata + "<option value='"+ scenarios[i].scenario_id + "'>" + scenarios[i].scenario_name + "</option>"
                $("#txtScenario").append(udata);
            }
    },
});
var orgID=$(this.val();
var scenarios='{{scenarios}}'
$.ajax({
键入:“获取”,
url:“{%url'获取\u方案“%””,
数据:{org_id:orgID},
成功:函数(){
var udata=“”;
对于(var i=0;i
url获取场景将我链接到具有函数获取场景的视图

我面临的错误是“str”对象没有属性“get”

回溯:

文件“/Users/anirudhchakravarthy/anaconda3/lib/python3.6/site packages/django/core/handlers/exception.py”,内文第35行 响应=获取响应(请求) 文件“/Users/anirudhchakravarthy/anaconda3/lib/python3.6/site packages/django/utils/deprecation.py”,第97行,在调用中 响应=自我处理\响应(请求、响应) 文件“/Users/anirudhchakravarthy/anaconda3/lib/python3.6/site packages/django/middleware/clickjacking.py”,第26行,进程响应中 如果response.get('X-Frame-Options')不是None: AttributeError:“str”对象没有属性“get”


任何帮助都将不胜感激

您可以使用
JsonResponse
。下面是示例代码

(最好检查try/exception并在找不到对象时发送404)


有关
JsonResponse
的更多信息,请选中您可以使用
JsonResponse
。下面是示例代码

(最好检查try/exception并在找不到对象时发送404)



有关
JsonResponse
的更多信息,请检查问题是否已解决?:(请上传您的完整视图。您只需将其传递到上下文数据,然后使用模板中的所有序列化数据。不幸的是,没有。我面临一个重复错误。只是更新了问题,因为我忘了提到错误。确定,然后请上传您的完整视图。如果您可能需要,我还添加了回溯。您没有解决问题吗?:(请上传您的完整视图。您只需将其传递到上下文数据,然后使用模板中的所有序列化数据。不幸的是,没有。我面临一个重复错误。只是更新了问题,因为我忘了提到错误OK,然后请上传您的完整视图。如果您可能需要,我还添加了回溯谢谢!一个小问题在上,此处使用的django上下文在哪里?此视图不使用django上下文。您只需通过
JsonResponse
发送json数据,因此不必渲染上下文数据。在
alertindex
中,
render
函数将使用django上下文。还有一件事,错误现在已经消失,数据正在传递。但我无法执行此操作访问ajax函数中的选项。你能最终帮我解决这个问题吗?你说不能访问选项是什么意思?在ajax函数的选项标记中,没有收到数据。谢谢!一个小问题,这里使用的django上下文在哪里?此视图不使用django上下文。你只需通过 JsonResponse
,因此您不必呈现上下文数据。在
alertindex
中,
呈现
函数将使用django上下文。还有一件事,错误现在消失了,数据正在传递。但我无法访问ajax函数中的选项。您能最终帮助我解决这个问题吗?您不能这样做是什么意思访问选项?在ajax函数的选项标记中,数据未被接收。
from django.http import JsonResponse

def get_scenario(request):
    org_id = request.GET.get('org_id')
    # you can do your own validation
    try:
        organization = Organization.objects.get(pk=int(org_id))
        scenario = organization.scenario_set.all()
        scenarios = serializers.serialize("json", scenario)
    except ObjectDoesNotExist:
        data = {
            'result': 'fail',
        }
        return JsonResponse(status=404, data)

    data = {
        "scenarios": scenarios,
        # add more data you want
    }

    return JsonResponse(data)