【问题标题】:Django model order the results according to the entry dateDjango模型根据输入日期排序结果
【发布时间】:2020-12-28 16:21:09
【问题描述】:

DB查询结果如何按照输入日期排序? 我想使用 MySQL DB 创建时间戳从添加的最新条目中订购输出。

class Author(models.Model):
    name = models.CharField(max_length=50)
    age = models.PositiveIntegerField(null=True, blank=True)
    alias = models.CharField(max_length=50, null=True, blank=True)
    goes_by = models.CharField(max_length=50, null=True, blank=True)
    flag = models.PositiveIntegerField()

    def __str__(self):
        return self.name
    
    objects = models.Manager()



def getAuthor(request):
    if request.method == "POST":
        result = list(Author.objects.filter(flag=0).values_list("name").order_by('-date'))
    else:
        pass
    return JsonResponse(result, safe=False) 

【问题讨论】:

  • 您在哪里创建了date 字段?此外,您不需要将models.Manager 用于迁移模型时自动生成的对象。
  • 我的表中没有date 字段。我想用MySql的时间戳;没有创建我自己的时间戳列。

标签: python-3.x django django-models django-views


【解决方案1】:

你可以这样做

class Author(models.Model):
    name = models.CharField(max_length=50)
    age = models.PositiveIntegerField(null=True, blank=True)
    alias = models.CharField(max_length=50, null=True, blank=True)
    goes_by = models.CharField(max_length=50, null=True, blank=True)
    flag = models.PositiveIntegerField()
    date = models.DateTimeField(auto_now_add=True)
    class Meta:
        ordering = ["-date"]

【讨论】:

  • 可以使用Mysql的入口时间戳吗?无需创建新列?
  • 不,您必须为其设置列日期
  • 你可以这样做 result = list(Author.objects.filter(flag=0).values_list("name").order_by('-date')) 你可以做我的回答跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-27
  • 1970-01-01
  • 2014-09-01
  • 2021-08-11
  • 1970-01-01
相关资源
最近更新 更多