Показывать содержимое БД в шаблоне, отсортированное по дате
В настоящее время я показываю содержимое в шаблоне, упорядоченное по порядковому_номеру
#модели:
class FlowPhase(models.Model):
sequence_number = models.IntegerField(validators=[MinValueValidator(1)])
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
#viewset
# Function to define sort criteria
def take_seq_number(elem):
return elem['flow_phase']['sequence_number']
def phase_details(request, batch_pk):
ph_details_url = API_HOST + "/api/phase_details_full/?batch=" + str(batch_pk)
answer = requests.get(ph_details_url).json()
ph_details = answer['results']
ph_details.sort(key=take_seq_number) # <------ sorting by sequence number
rendered_page = render(request, 'batches_phases/consumer/phase_details.html', {'ph_details': ph_details})
return rendered_page
Итак, я хочу показывать содержимое ph_details в шаблоне упорядоченным по updated_at, а не по sequence_number больше.
Есть предложения, как это сделать в python? В этом случае я полагаю, что изменения будут только в
ph_details.sort(key=take_seq_number)
и
def take_seq_number(elem):
return elem['flow_phase']['sequence_number']
Моя сложность в том, что поскольку sequence_number - целое число, его легче сортировать. Но как это сделать с датами?
Просто определите новый метод сортировки и передайте его в качестве key
параметра функции sort()
что-то вроде:
def sort_phase_updated_at(elem):
return elem['flow_phase']['updated_at']
ph_details.sort(key=sort_phase_updated_at)