转换按钮 - 在开发中工作,而不是部署

时间:2017-09-12 12:10:55

标签: javascript django pythonanywhere

我有一个退出表格。用户单击按钮以确保预订。该按钮从“free”变为“reserved”,保留按钮包括用户名。我正在使用Django,但是添加了JS,这样按钮就会在没有刷新的情况下改变。

这在我的本地服务器上工作正常,但是当我部署到PythonAnywhere时却没有。相反,按钮转换,但显示“无”,我的控制台检查是“未定义”。

知道出了什么问题吗?

以下简要代码:

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 %}

还有一些选项(清除,保留,阻止)

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

1 个答案:

答案 0 :(得分:0)

您需要提供静态文件。

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

查看有关Django项目的SQL Server: Auto Statistics Cleanup文档,了解如何使用它。这是一个可以使用的简单静态文件服务器。

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

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