У меня есть приложение в Django 1.8, и я хочу взять последний объект (на основе pub_date) и установить для этого объекта, зарегистрированного is_mainteaser
, на True
, и rest ssould установить на False.Возьмите последний объект в запросе и задайте значение в поле
Вот мой код, но последний объект не имеет поля True.
class ArticleListView(ListView):
model = Article
queryset = Article.objects.order_by('-pub_date')
def get_context_data(self, **kwargs):
context = super(ArticleListView, self).get_context_data(**kwargs)
lates_object = Article.objects.latest('pub_date')
lates_object.is_mainteaser = True
return context
Вот моя модель:
class Article(model.Models):
title = models.CharField(max_length=255)
short_text = models.TextField(max_length=10000, default='')
image = FilerImageField(null=True)
pub_date = models.DateTimeField('date published')
online_from = models.DateTimeField('online from', blank=True)
online_to = models.DateTimeField('online to', blank=True)
position = models.PositiveIntegerField(default=0)
is_mainteaser = models.BooleanField(default=False)
def __str__(self):
return self.title
class Meta:
ordering = ['position']
Вы никогда его не сохраняете ... но тогда почему вы делаете это в 'get_context_data'? – Sayse
@ Sayse это должно быть в другом методе? –
Ну, я не понимаю, что вы его настраиваете, поэтому я не могу сказать вам, похоже, что это было бы расточительно, хотя, поскольку это будет сохраняться каждый раз, когда кто-то посещает вид списка – Sayse