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')

У меня есть только один опрос, который я буду выпускать для Response каждый квартал.

В настоящее время last_response представления UserAdmin возвращает имя опроса (charField).

Что я хотел бы сделать, так это использовать ответ created или updated (в зависимости от того, что будет последним) и в UserAdmin отобразить это, например, как «Q1 2018».

Я знаю, что это может быть достигнуто относительно легко с помощью Django 2.0 с использованием извлечения функции даты, но как мне это сделать с помощью Django 1.11?


person user1970728    schedule 05.02.2018    source источник
comment
Q%d %d %(((dt.month-1)//3)+1, dt.year), где dt — экземпляр даты и времени.   -  person Saji Xavier    schedule 05.02.2018
comment
Спасибо, работает. Я вставил следующее в свой объект класса Response(models.Model): def __str__(self): msg = uQ%d %d %(((self.created.month-1)//3)+1, self.created .year) вернуть сообщение   -  person user1970728    schedule 05.02.2018


Ответы (1)


В 1.x вы можете использовать следующую логику,

"Q%d %d" %(((self.created.month-1)//3)+1, self.created.year) 
person Saji Xavier    schedule 05.02.2018