我有一个退出表格。用户单击按钮以确保预订。该按钮从“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 %}
还有一些选项(清除,保留,阻止)
同样,这在开发中运行良好!我错过了什么?
答案 0 :(得分:0)
您需要提供静态文件。
Javascript文件计为静态文件。在开发环境中,当您在settings.py文件中将DEBUG设置为true时,Django会收集静态文件并提供服务,但是当您在部署服务器中将DEBUG设置为false时它会停止。
查看有关Django项目的SQL Server: Auto Statistics Cleanup文档,了解如何使用它。这是一个可以使用的简单静态文件服务器。
要确保这是您的问题,请导航到settings.py文件并将DEBUG设置为true,然后重新启动服务器。如果一切正常,请按照上面链接中的说明进行操作。
确保不要依赖DEBUG模式,因为它可能会导致性能下降和大量内存泄漏