【问题标题】:Django - Ajax or not Ajax?Django - Ajax 还是不是 Ajax?
【发布时间】:2020-04-05 04:12:58
【问题描述】:

编辑 低于我所做的,但即使我的 ajax 看起来正确,我的导航栏也不会更新 ajax 请求的结果

urls.py

app_name='randomization'
urlpatterns = [
    ...
    path('stock/', views.stock, name='stock'),
]

views.py

def stock(request):
    if request.method == "POST":
        site = request.POST['site']
    else:
        site = ''

    # database queries to be done after
    # result will be stock == True or stock == False

    return render(request, 'randomization/stock.html', {'stock': True})

ajax 代码

        $("#site").on("change", function(event){

            console.log($(this).val());

            $.ajax({
                type: "POST",
                url: '{% url "randomization:stock" %}',
                data: {
                    csrfmiddlewaretoken: '{{ csrf_token }}',
                    'site' : $(this).val(), 
                },
                dataType: 'html',
                success: function (data) {
                    // alert(data) -> OK
                    if (data) {
                        // alert("Test retour requete ajax"); -> OK
                        $("#alerte").html(data);
                    }
                }
            });
        });

ajax 模板

{% if stock %}
    <a class="nav-link" id="informations" href="#" style="color:red; padding-right: 50px;"><strong>Insufficient stock</strong></a>
{% else %}

{% endif %}
<li class="nav-item" id="alerte">
    // ajax template to be added
</li>

所以我不明白为什么它没有添加“库存不足”的消息?

。 . .

我有一个带有经典导航栏的 Django 项目,其中包含一个带有下拉菜单的选择和其他链接

我有一个函数可以查询数据库以控制中心的药品库存(用户中心 - 默认为 CHU - 或选择中心)并返回布尔值 如果为真,则显示红色警报“库存不足”,不应显示链接“随机分配患者”和“重新分配患者”

当用户选择另一个中心而不重新加载页面时,我希望重新评估药品库存 我想我应该使用 ajax 但我不知道如何实现

【问题讨论】:

标签: python django ajax


【解决方案1】:

终于成功了,问题来自我的代码中似乎被解释的注释行??? 但非常感谢他们!

【讨论】:

    【解决方案2】:

    请在社区提问之前使用谷歌和谷歌搜索您的问题。 有很多关于 Ajax 和使用它的 python 教程。 查看下面的链接,从 Django doc site it self 开始。 在不重新加载页面的情况下与您的 django DB 和您的网站进行交互的唯一方法是使用 AJAX。

    Django and AJAX

    how-to-work-with-ajax-request-with-django

    Django And Ajax Full Tutorial

    【讨论】:

      【解决方案3】:

      是的,您可以为此目的使用 ajax。

              $.ajax({
                  url: "Your URL",
                  type: "POST",
                  data: {
                      csrfmiddlewaretoken: '{{ csrf_token }}',
                      Data1: 'something',
                      Data2: 'something else',
                  }
              });
      

      不要忘记在查询数据中添加csrfmiddlewaretoken

      【讨论】:

        猜你喜欢
        • 2020-05-26
        • 2015-12-26
        • 1970-01-01
        • 2016-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-11
        • 1970-01-01
        相关资源
        最近更新 更多