Django 1.11最好为多种目的接近“四分之一”逻辑

时间:2018-02-05 10:20:45

标签: django datetime django-1.11

我有一个Survey应用程序,其中包括Survey模型和Response模型。

class Survey(models.Model):
    name = models.CharField(max_length=400)
    is_published = models.BooleanField()

class Response(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    survey = models.ForeignKey(Survey, related_name="responses")

我还有一个 admin 视图,用于显示所有用户,并显示用户已提交的最新响应

class UserAdmin(admin.ModelAdmin):
    list_display = ('username', 'latest_response')

    def latest_response(self, obj):
        return obj.response_set.latest('created')

我只有一个调查,我将每季度发布一次调查回复。

目前,UserAdmin视图的latest_response返回Survey(charField)的名称

我想要做的是使用响应的已创建已更新(以最新者为准),并在UserAdmin中将其显示为“Q1 2018”,例如

我知道这可以通过使用日期函数提取的Django 2.0相对容易地实现,但是我如何使用Django 1.11做到这一点?

1 个答案:

答案 0 :(得分:1)

在1.x中,您可以使用以下逻辑

"Q%d %d" %(((self.created.month-1)//3)+1, self.created.year)