Здравствуйте, у меня возникли проблемы с запросами.У меня есть список предметов.Любой элемент может иметь статус, установленный для него (In, Out, Collected, Destroyed и т. Д.).Вот мои взгляды.
def client_summary(request, client_id):
client = None
items = None
try:
client = models.Client.objects.get(pk = client_id)
items = client.storageitem_set.all()
total_items = items.count()
except:
return HttpResponse(reverse(return_clients))
return render_to_response('client_summary.html', {'items':items, 'total_items':total_items, 'client':client}, context_instance = RequestContext(request))
Если у меня есть в моем шаблоне
{%for item in items%}
{{item.itemstatushistory_set.latest}}
{%endfor%}
Это будет отображать все последние статус.Теперь я хочу только распечатать все предметы, которые имеют только статус Уничтожено.По какой-то причине я не могу этого сделать.
Вот еще некоторая информация из моих моделей.
class StorageItem(models.Model):
type = models.ForeignKey(StorageObject)
client = models.ForeignKey(Client)
company_id = models.PositiveIntegerField(unique = True, blank = True, null = True)
content = models.TextField(blank = True)
alternative_id = models.CharField(verbose_name = 'Client no.', max_length = 60, blank = True)
title = models.CharField(max_length = 100)
format = models.ForeignKey(Format, blank = True, null = True)
location = models.CharField(max_length = 20, blank = True)
item_class = models.TextField(blank = True)
def __unicode__(self):
return self.title
class Status(models.Model):
description = models.CharField(max_length = 60)
notes = models.TextField(blank = True)
def __unicode__(self):
return self.description
class Meta:
verbose_name_plural = 'Status'
get_latest_by = 'date'
ordering = ['date']
class ItemStatusHistory(models.Model):
date = models.DateTimeField(auto_now = True)
contact = models.ForeignKey(Contact)
item = models.ForeignKey(StorageItem)
status = models.ForeignKey(Status)
user = models.ForeignKey(User)
def __unicode__(self):
return str(self.status
EDIT : Есть еще некоторые проблемы, потому что отношение между предметом может иметь много состояний.Но я хочу перечислить только самый последний статус только для уничтоженных предметов.
Пример: Предположим, есть 3 предмета и они имеют наборы item1 = [in, out, destroyed]
, item2 = [destroyed, in]
, item3 = [destroyed
, collected, destroyed]
, item4 = [in]
где [1st status, 2nd status, 3rd status, etc]
.Я только хочу отобразить последний статус этого элемента.
Майк и Кригар получат результат, подобный [item1, item2, item3, item3]
.Поскольку Юджи использовал отличную функцию, он получит [item1, item2, item3]
.
Ответ, который мне нужно получить в конце, должен быть [item1, item3]
.