【问题标题】:Tranforming buttons - works in development, not deployment转换按钮 - 在开发中工作,而不是部署
【发布时间】:2018-02-20 21:29:00
【问题描述】:

我有一个退出表格。用户单击按钮以确保预订。该按钮从“免费”变为“保留”,保留按钮包括用户名。我使用的是 Django,但是添加了 JS,以便按钮无需刷新即可更改。

这在我的本地服务器上运行良好,但当我部署到 PythonAnywhere 时却不行。相反,按钮会转换,但显示“none”并且我的控制台检查是“undefined”。

知道出了什么问题吗?

以下代码:

Main.JS
$( 'button' ).click(function() {
        console.log( 'we clicked!' ); // Sanity Check II
        var pk = this.id
        var button = $(this)
        var user = $( 'button' ).attr("user")
        console.log( pk, user) // Sanity Check III
$.ajax({
            url: "/reserve/",
            type: "POST",       //Send the info to reserve view
            data: { pk : pk},
            success: function(data) {
                var number = JSON.parse(data);
                console.log(number, number.result)
                if (number.result == 1 ) {
                      if (number.result == 2) {
             console.log(user)
             $(button).toggleClass( "free reserved")
             $(button).children("div.tchr").html(user);   //Send user info to button, reverts on refresh
                $.toast({
                    heading: "Reservation Complete!",
                    icon: 'success',
                    stack: 4,
                    hideAfter: 2000
                });
            }

还有一个按钮

home.html

{% for p in periods %}
            <td class="slots">
                Period {{p}} <br>{% for x in this_week %} {% with d=x.day|date:"w" %} {% if d == '1' and x.period == p %} {% if x.is_reserved == True %} # this_week  is the queryset of reservations, day is the day converted into a weekday
                <button id="{{x.pk}}" type="submit" class="reserved btn">
                                <span class="cart">{{x.cart}}</span>
                                <div class="tchr" style="text-align:left">{{x.teacher}}</div></button> {% else %}
                <button id="{{x.pk}}" type="submit" user="{{request.user }}" class="free btn">{% csrf_token %}
                                <span class="cart">{{x.cart}}</span>
                                <div class="tchr">{{x.teacher}}</div></button> {% endif %} {% endif %} {% endwith %} {% endfor %}
            </td>
            {% endfor %}

还有更多选项(已清除、保留、已阻止)

同样,这在开发中运行良好!我错过了什么?

【问题讨论】:

    标签: javascript django pythonanywhere


    【解决方案1】:

    您需要提供静态文件。

    Javascript 文件算作静态文件。在开发环境中,当您的 settings.py 文件中的 DEBUG 设置为 true 时,Django 会负责收集您的静态文件并提供服务,但是当您在部署服务器中将 DEBUG 设置为 false 时,它​​会停止。

    查看 Django 项目上的staticfiles app 文档以了解如何使用它。这是一个您可以使用的简单静态文件服务器。

    要确保这是您的问题,请导航到您的 settings.py 文件并将 DEBUG 设置为 true,然后重新启动您的服务器。如果一切正常,请按照上面链接中的说明进行操作。

    确保不要依赖 DEBUG 模式,因为它可能导致性能下降和大量内存泄漏

    【讨论】:

    猜你喜欢
    • 2021-12-31
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多