Я новичок в Django и стараюсь развернуть свое резюме в Интернете.Извлеките всех родителей с детьми с сортировкой детей
Вот это мои две модели:
#MODELS
class Category(models.Model):
help_text = 'Category respresents a category of experience, or school experiments'
# Name
name = models.CharField(max_length=500, blank=False)
# ...
def __unicode__(self):
return self.name
class Experience(models.Model):
help_text = 'An experience can be a skill, a school experiment etc.'
# ordering = ['-end_date']
parent_category = models.ForeignKey(Category)
# Name
# ...
end_date = models.DateField('date of end', blank=True, null=True)
# ...
def __unicode__(self):
return self.name
#View
# index view
def index(request):
# Would like something to just order the children
all_categories = Category.objects.filter().order_by(????)
return render_to_response('CMSCV/index.html',
{ 'categories' : all_categories },
context_instance=RequestContext(request))
Как вы можете видеть, на мой взгляд, я не знаю, как-то только дети (опыт) на поле «датой_окончания» в запросе.
Я попытался это:
Category.objects.all().order_by('experience__end_date').distinct()
Category.objects.all().order_by('experience__end_date').distinct('experience__end_date')
Category.objects.all().order_by('experience__end_date').distinct('name')
Но это возвращает меня слишком много родителей ...
Хотелось бы знать, как я могу решить эту проблему ?
Спасибо
Это не работает, на самом деле это просто указана максимальная дата опыта и сортировка по этой максимальной дате. Но я хотел бы сортировать только детей. Я не хочу сортировать Категория, но только дети. Спасибо – user1475457
О, вы хотите распечатать опыт в порядке? В этом случае вы будете перебирать категории, а затем выполняете 'category.experiences_set.all(). Order_by ('end_date')' – cberner
Вот и все! Спасибо огромное ! – user1475457