【问题标题】:django order_by not working on server but works fine on local machinedjango order_by 不在服务器上工作,但在本地机器上工作正常
【发布时间】:2017-08-14 11:27:55
【问题描述】:

我有一个请求模型

class Leave(models.Model):
 from_date = models.DateField(verbose_name='From')
 to_date = models.DateField(verbose_name='To')
 leave_type = models.ForeignKey(TotalLeave,verbose_name='Type',null=True)
 message = models.CharField(max_length=1000,verbose_name='Message to your Manager regarding your leave',null=True)
 created_by = models.ForeignKey(User,related_name='created_user',null=True)
 created_datetime = models.DateTimeField(null=True,blank=True)
 last_modified_by = models.ForeignKey('auth.user',null=True)
 last_modified_date = models.DateTimeField(default=datetime.now,null=True)
 emp = models.ForeignKey('Employee',null=True)
 approval_status = models.BooleanField(default=False,verbose_name='Leaves approved or not ?')

查看:

@login_required
def all_requests(request):
    inner_qs = Employee.objects.filter(email=request.user.email)
    entries = Employee.objects.filter(reporting_manager__in=inner_qs)
    if (request.user.is_staff):
        if request.method == 'POST':
            month = request.POST.get('month')
            leaves = Leave.objects.filter(from_date__month=month).order_by('approval_status')
        else:
            leaves = Leave.objects.all().order_by('approval_status')
    else:
        leaves = Leave.objects.filter(emp__in=entries).order_by('approval_status')
    from django.db.models.functions import TruncMonth
    months = Leave.objects.annotate(month=TruncMonth('from_date')).values('month').annotate(c=Count('id')).values('month', 'c')

我正在尝试基于批准状态的订单离开,这在 localhost 上工作正常,但如果我拉上服务器,它在某种意义上不起作用,order_by 根本无法在服务器上工作,我在服务器和本地机器上都使用 MYSQL

【问题讨论】:

  • 您的语法和代码对我来说似乎是正确的。你能解释一下it does not work 的含义吗?它是否显示任何错误,或者只是没有按预期对值进行排序?
  • 显示结果但 order_by 不能仅在服务器上工作
  • 检查数据库中的值。有可能数据库没有那种可以排序的值,就像审批状态中的所有错误值或类似的东西
  • 数据库由多个 1 和 0 的值组成,我验证了它

标签: python django django-models django-views


【解决方案1】:

原来 Apache wsgi 没有得到我的新拉动,所以我触摸了 wsgi 文件,它工作了,感谢您的帮助

【讨论】:

    【解决方案2】:

    触摸项目中的 wsgi 文件

    在服务器中

    ssh root@webserver.local touch'var/www/django_site/app/wsgi.py'
    

    它只是询问是/否 --> 点击是并输入您的密码,然后您就可以开始了

    例如:

    ssh root@mysite.com touch .. 
    

    【讨论】:

      猜你喜欢
      • 2015-08-28
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 2011-11-11
      • 2023-03-06
      • 2021-11-01
      • 2014-12-05
      • 1970-01-01
      相关资源
      最近更新 更多