【发布时间】: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