Сортировка и индексация в список в шаблоне Django?

Вы можете попробовать это также

private static AutoResetEvent _wait = new AutoResetEvent(false);

public Form1()
    {
        InitializeComponent();
    }

private void Form1_Load(object sender, EventArgs e)
    {
        Control.CheckForIllegalCrossThreadCalls = false;
        backgroundWorker1.RunWorkerAsync();
    }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        Dosomething();
    }

private void Dosomething()
{
 //Your Loop
 for(int i =0;i<10;i++)
   {
    //Dosomething
    _wait._wait.WaitOne();//Pause the loop until the button was clicked.

   } 
}

private void btn1_Click(object sender, EventArgs e)
    {
        _wait.Set();
    }
6
задан slypete 5 August 2010 в 13:41
поделиться

4 ответа

Как указывали другие, обе ваши проблемы лучше всего решать вне шаблона - либо в моделях, либо в виде. Одна из стратегий - добавить вспомогательные методы к соответствующим классам.

Получение отсортированного списка пациентов врача:

class Physician(Model):
   ...
   def sorted_patients(self):
      return self.patients.order_by('bed__room__unit',
                                    'bed__room__order',
                                    'bed__order')

И в шаблоне используйте Physician.sorted_patients , а не doctor. Пациенты .

Для «отображения заметок этого note_type» похоже, что вам может понадобиться метод notes для класса note_type. Из вашего описания я не уверен, модельный это класс или нет, но принцип тот же:

class NoteType:
   ...
   def notes(self):
      return <calculate note set>

И затем шаблон:

{% for note_type in note_types %}
   <div><h3>{{ note_type }}</h3></div>
   {% for note in note_type.notes %}
      <p>{{ note }}</p>
   {% endfor %}
   </div>
{% endfor %}
11
ответ дан 8 December 2019 в 14:45
поделиться

«Я бы хотел сделать это из шаблона:»

Не надо. Сделайте это в функции просмотра, которой она принадлежит.

Поскольку вопрос неполный, невозможно угадать модель данных и предоставить точное решение.

results= physician.patients.order_by('bed__room__unit', 'bed__room__order', 'bed__order')

Должно быть достаточно. Предоставьте результатов шаблону для рендеринга. Это в правильном порядке.

Если сортировка не выполняется должным образом (возможно, из-за какой-то тонкой модели), тогда у вас всегда есть такая альтернатива.

def by_unit_room_bed( patient ):
    return patient.bed.room.unit, patient.bed.room.order, patient.bed.order

patient_list = list( physician.patients )
patient_list.sort( key=by_unit_room_bed )

Предоставьте список пациентов в шаблон для визуализации. Это в правильном порядке.

«Как вы индексируете список внутри шаблона»

Я не уверен, что вы пытаетесь сделать, но в большинстве случаев ответ: «Не ". Сделайте это в функции просмотра.

Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.

Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра

def by_unit_room_bed( patient ):
    return patient.bed.room.unit, patient.bed.room.order, patient.bed.order

patient_list = list( physician.patients )
patient_list.sort( key=by_unit_room_bed )

Предоставить список пациентов в шаблон для визуализации. Это в правильном порядке.

«Как вы индексируете список внутри шаблона»

Я не уверен, что вы пытаетесь сделать, но в большинстве случаев ответ: «Не ". Сделайте это в функции просмотра.

Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.

Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра

def by_unit_room_bed( patient ):
    return patient.bed.room.unit, patient.bed.room.order, patient.bed.order

patient_list = list( physician.patients )
patient_list.sort( key=by_unit_room_bed )

Предоставить список пациентов в шаблон для визуализации. Это в правильном порядке.

«Как вы индексируете список внутри шаблона»

Я не уверен, что вы пытаетесь сделать, но в большинстве случаев ответ: «Не ". Сделайте это в функции просмотра.

Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.

Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра

Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.

Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра

Шаблон просто перебирает простые списки, заполняя простые HTML-шаблоны.

Если это кажется слишком сложным для шаблона, то это так. Сохраняйте простой шаблон - это всего лишь презентация. Обработка происходит в функции просмотра

4
ответ дан 8 December 2019 в 14:45
поделиться

Вы сможете создать упорядоченный набор запросов в своем представлении и передать его в шаблон:

def myview(request):
    patients = Physician.patients.order_by('bed__room__unit', 
                                           'bed__room__order', 
                                           'bed__order')
    return render_to_response('some_template.html',
                              dict(patients=patients), 
                              mimetype='text/html')

Ваш шаблон может затем перебрать пациентов , которые будут содержать упорядоченные результаты. Разве у вас это не работает?

РЕДАКТИРОВАТЬ: Для индексации просто используйте синтаксис с точкой: mylist.3 в шаблоне становится mylist [3] в python. См. http://docs.djangoproject.com/en/dev/ref/templates/api/#rendering-a-context для получения дополнительной информации.

1
ответ дан 8 December 2019 в 14:45
поделиться

Это один из способов, хотя и очень уродливый:

{ % для примечания в note_sets | slice: "forloop.counter0" | first%}

0
ответ дан 8 December 2019 в 14:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: