Django 1.11 最适合用于多种用途的 "quarter" 逻辑
Django 1.11 best to approach to "quarter" logic for multiple purposes
我有一个包含调查模型和响应模型的调查应用程序。
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 returns 调查 (charField) 的 name。
我想做的是使用响应的 created 或 updated (以最新者为准),并在 UserAdmin 中显示例如 "Q1 2018"。
我知道这可以通过 Django 2.0 使用日期函数提取相对容易地实现,但是我如何使用 Django 1.11 来实现?
在1.x中你可以使用下面的逻辑,
"Q%d %d" %(((self.created.month-1)//3)+1, self.created.year)
我有一个包含调查模型和响应模型的调查应用程序。
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 returns 调查 (charField) 的 name。
我想做的是使用响应的 created 或 updated (以最新者为准),并在 UserAdmin 中显示例如 "Q1 2018"。
我知道这可以通过 Django 2.0 使用日期函数提取相对容易地实现,但是我如何使用 Django 1.11 来实现?
在1.x中你可以使用下面的逻辑,
"Q%d %d" %(((self.created.month-1)//3)+1, self.created.year)