【问题标题】:How to send a JavaScript variable to Django to use in views.py [duplicate]如何将 JavaScript 变量发送到 Django 以在 views.py 中使用 [重复]
【发布时间】:2020-11-30 20:31:27
【问题描述】:

我有一个模型,其中包含有关在我的网站上显示的不同建筑物的信息。当用户选择其中一栋建筑物时,我希望显示该信息。当用户选择建筑物时,JavaScript 变量包含用户选择的建筑物名称。如何将此变量发送到我的views.py,以便获取“name”JavaScript 变量指定的建筑对象?

这是我目前的views.py,建筑物名称“Harris”是硬编码的。这是我想放置JavaScript变量的地方,所以我可以根据哪个建筑物显示建筑物信息用户选择。

from django.shortcuts import render
from django.http import HttpResponse
from .models import Building

def index(request):
  buildings = Building.objects.get(buildingName = "Harris")
  return render(request, 'index.html', {'buildings': buildings})

我是 Django 新手,所以任何信息都有帮助。谢谢

【问题讨论】:

  • 欢迎来到 SO!这个问题的很多版本都被问过,例如这个:stackoverflow.com/questions/50851210/…
  • 这能回答你的问题吗? Send a javascript variable to django view
  • @Ruli LOL 这与我添加的链接完全相同。一个副本的副本...
  • @MattMorgan 不,这是一个标准文本,当您将建议关闭标志设为重复时会出现,您应该以您的声誉知道这一点。还是我误会了你?

标签: javascript python django


【解决方案1】:

views.py

from django.http import JsonResponse

def ajax(request):
    building = request.GET.get('building', None)
    queryset = Building.objects.get(buildingName=building)
    data = {
        'buildings' : list(queryset)
    }

    return JsonResponse(data, safe=False)

urls.py

from .views import ajax

urlpatterns = [
    path('ajax/', ajax, name='ajax'),
]

您的 HTML 代码

<script type="text/javascript">
    $('#select').change(function(){
        let building = $(this).val();

        $.ajax({
            url: '/ajax/',
            data: {
                'building': building,
            },
            dataType: 'json',
            success: function(data){
                console.log(data['buildings']);
            }
        })
    })
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2019-05-21
    • 2015-11-16
    • 1970-01-01
    • 2013-03-27
    相关资源
    最近更新 更多